diff --git a/composer.json b/composer.json index 2a3c5d59d..ed4b951fb 100644 --- a/composer.json +++ b/composer.json @@ -91,10 +91,10 @@ ], "code:fix": [ "@php-cs-fixer", - "vendor/bin/phpcbf ./src ./tests/Functional ./tests/unit_tests --standard=psr12 -v" + "vendor/bin/phpcbf ./src ./tests/Functional --standard=psr12 -v" ], "cs": [ - "vendor/bin/phpcs --standard=phpcs_ruleset.xml src tests/Functional tests/unit_tests" + "vendor/bin/phpcs --standard=phpcs_ruleset.xml src tests/Functional" ], "code:lint": [ "@cs" @@ -150,8 +150,7 @@ ], "php-cs-fixer": [ "vendor/bin/php-cs-fixer fix ./src --rules=@PSR12", - "vendor/bin/php-cs-fixer fix ./tests/Functional --rules=@PSR12", - "vendor/bin/php-cs-fixer fix ./tests/unit_tests --rules=@PSR12" + "vendor/bin/php-cs-fixer fix ./tests/Functional --rules=@PSR12" ] }, "config": { diff --git a/tests/features/aliases.feature b/tests/features/aliases.feature deleted file mode 100644 index 59673ee12..000000000 --- a/tests/features/aliases.feature +++ /dev/null @@ -1,39 +0,0 @@ -Feature: Gathering sites' aliases - As a Pantheon user - I need to be able to generate a list of aliases - So that I may make use of Drush effectively. - - Background: I am authenticated - Given I am authenticated - - @vcr aliases.yml - Scenario: Generating aliases with printout - When I run "[[executable]] aliases" - Then I should get: "/.drush/pantheon.aliases.drushrc.php" - - @vcr aliases.yml - Scenario: Generating aliases with printout - When I run "[[executable]] aliases --location=[[cache_dir]]/aliases.php" - Then I should get: "/aliases.php" - - @vcr aliases.yml - Scenario: Generating aliases with printout - When I run "[[executable]] aliases --print" - Then I should get: - """ - [notice] Fetching site information to build Drush aliases... - [notice] 40 sites found. - [notice] Displaying Drush 8 alias file contents. - """ - And I should get: - """ - $aliases['a-far-off-site-with-no-org.*'] = array( - 'uri' => '${env-name}-a-far-off-site-with-no-org.pantheonsite.io', - 'remote-host' => 'appserver.${env-name}.8a5311d2-162a-4a88-8561-ebf8706568cb.drush.in', - 'remote-user' => '${env-name}.8a5311d2-162a-4a88-8561-ebf8706568cb', - 'ssh-options' => '-p 2222 -o "AddressFamily inet"', - 'path-aliases' => array( - '%files' => 'files', - ), - ); - """ diff --git a/tests/features/art.feature b/tests/features/art.feature deleted file mode 100644 index 680073471..000000000 --- a/tests/features/art.feature +++ /dev/null @@ -1,26 +0,0 @@ -Feature: ASCII Art display - - Scenario: Display fist art - When I run "[[executable]] art fist" - Then I should get: ".+." - - Scenario: Display Druplicon art - When I run "[[executable]] art druplicon" - Then I should get: ".." - - Scenario: Display WordPress art - When I run "[[executable]] art wordpress" - Then I should get: "............." - - Scenario: Display unicorn art - When I run "[[executable]] art unicorn" - Then I should get: "\" - - Scenario: Display random art - When I run "[[executable]] art random" - Then I should get one of the following: ">\/7, +?????????=., .xWWXo;;;;;,'., ......''......, (( )), Hello World!" - - Scenario: Fail to display non-existent artwork - When I run "[[executable]] art invalid" - Then I should get: "" - And I should get: "There is no source for the requested invalid artwork" diff --git a/tests/features/auth.feature b/tests/features/auth.feature deleted file mode 100644 index 4667642b7..000000000 --- a/tests/features/auth.feature +++ /dev/null @@ -1,110 +0,0 @@ -Feature: Authorization command - In order to use Terminus - As a user - I need to be able to log in to the system. - - @vcr auth-login.yml - Scenario: Logging in - Given I am not authenticated - When I run "[[executable]] auth:login --machine-token=[[machine_token]]" - Then I should get: "Logging in via machine token." - - @vcr auth-login.yml - Scenario: Logging in while in debug mode does not expose sensitive information - Given I am not authenticated - When I run "[[executable]] auth:login --machine-token=[[machine_token]] -vvv" - Then I should get: "Logging in via machine token." - And I should get: - """ -Body: {"machine_token":"**HIDDEN**","client":"terminus"} -[debug] #### RESPONSE #### -Headers: {"Date":["Tue, 16 Aug 2016 22:51:26 GMT"],"Content-Type":["application\/json; charset=utf-8"],"Content-Length":["182"],"Connection":["keep-alive"],"X-Pantheon-Trace-Id":["f535ebd0-6403-11e6-9844-1524ed28772c"],"X-Frame-Options":["deny"],"Access-Control-Allow-Methods":["GET"],"Access-Control-Allow-Headers":["Origin, Content-Type, Accept"],"Cache-Control":["no-cache"],"Pragma":["no-cache"],"Vary":["Accept-Encoding"],"Strict-Transport-Security":["max-age=31536000"]} -Data: {"session":"**HIDDEN**","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"} - """ - - @vcr auth-login-machine-token-invalid.yml - Scenario: Failing to log in via invalid machine token - Given I am not authenticated - When I run "[[executable]] auth:login --machine-token=invalid" - Then I should get: "Logging in via machine token." - And I should get: "Server error: `POST https://onebox/api/authorize/machine-token` resulted in a `500 Internal Server Error` response:" - And I should get: "Authorization failed. Please check that your machine token is valid." - - Scenario: Failing to log in by saved token when no such user's was saved - Given I have no saved machine tokens - When I run "[[executable]] auth:login --email=invalid" - Then I should get: - """ - Could not find a saved token identified by invalid. - """ - - Scenario: Failing to log in automatically when multiple machine tokens have been saved - Given I have at least "2" saved machine tokens - When I run "[[executable]] auth:login" - Then I should get: - """ - Please visit the dashboard to generate a machine token: - """ - - Scenario: Failing to log in automatically when no machine tokens have been saved - Given I have no saved machine tokens - When I run "[[executable]] auth:login" - Then I should get: - """ - Please visit the dashboard to generate a machine token: - """ - - @vcr auth-logout.yml - Scenario: Logging out - Given I am authenticated - When I run "[[executable]] auth:logout" - Then I should get: - """ - Your saved machine tokens have been deleted and you have been logged out. - """ - And I run "[[executable]] auth:whoami" - Then I should get: "You are not logged in." - And I should not get: - """ - [[username]] - """ - - @vcr auth-whoami.yml - Scenario: Check Which User I Am - Given I am authenticated - When I run "[[executable]] auth:whoami" - Then I should get: - """ - [[username]] - """ - - @vcr auth-whoami.yml - Scenario: Check which user I am by ID - Given I am authenticated - When I run "[[executable]] auth:whoami --fields=id" - Then I should get: - """ - [[user_id]] - """ - And I should not get: - """ - [[username]] - """ - - @vcr auth-whoami.yml - Scenario: Displaying fields in a session in a table - Given I am authenticated - When I run "[[executable]] auth:whoami --format=table --fields=email,id" - Then I should get: "------- --------------------------------------" - And I should get: "Email [[username]]" - And I should get: "ID [[user_id]]" - And I should get: "------- --------------------------------------" - - Scenario: Checking my user should not get any useful result when I am logged out. - When I am not authenticated - And I run "[[executable]] auth:whoami" - Then I should get: "You are not logged in." - And I should not get: - """ - [[username]] - """ diff --git a/tests/features/backup-automatic-disable.feature b/tests/features/backup-automatic-disable.feature deleted file mode 100644 index 45081c2cc..000000000 --- a/tests/features/backup-automatic-disable.feature +++ /dev/null @@ -1,17 +0,0 @@ -Feature: Cancel a Backup Schedule for a Site - In order to manage the security of my site content - As a user - I need to be able to cancel my automated backup schedule. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-schedule-cancel.yml - Scenario: Cancel the backup schedule for an environment - When I run "[[executable]] backup:automatic:enable [[test_site_name]].dev --day=mon" - Then I should get "Backup schedule successfully set." - When I run "[[executable]] backup:automatic:disable [[test_site_name]].dev" - Then I should get: "Backup schedule successfully canceled." - When I run "[[executable]] backup:automatic:info [[test_site_name]].dev" - Then I should not get: "Monday" diff --git a/tests/features/backup-automatic-enable.feature b/tests/features/backup-automatic-enable.feature deleted file mode 100644 index 85294fe58..000000000 --- a/tests/features/backup-automatic-enable.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Set a Backup Schedule for a Site - In order to ensure the security of my site content - As a user - I need to be able to set my automated backup schedule. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-schedule-set.yml - Scenario: Set the backup schedule for an environment - When I run "[[executable]] backup:automatic:enable [[test_site_name]].test --day=Mon" - Then I should get "Backup schedule successfully set." - When I run "[[executable]] backup:automatic:info [[test_site_name]].test" - Then I should get: "Monday" - - @vcr backup-schedule-set-ttl.yml - Scenario: Set the backup schedule for an environment with a TTL - When I run "[[executable]] backup:automatic:enable [[test_site_name]].test --day=Tue --keep-for=180" - Then I should get "Backup schedule successfully set." - When I run "[[executable]] backup:automatic:info [[test_site_name]].test --field=expiry" - Then I should get: "180 days" diff --git a/tests/features/backup-automatic-info.feature b/tests/features/backup-automatic-info.feature deleted file mode 100644 index b97b15be7..000000000 --- a/tests/features/backup-automatic-info.feature +++ /dev/null @@ -1,34 +0,0 @@ -Feature: List Backup Schedule for a Site - In order to ensure the security of my site content - As a user - I need to be able to show my automated backup schedule. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-schedule-get.yml - Scenario: Show the backup schedule for an environment - When I run "[[executable]] backup:automatic:info [[test_site_name]].dev" - Then I should get: - """ - Friday - """ - - @vcr backup-schedule-get.yml - Scenario: Show the table of backup schedule information for an environment - When I run "[[executable]] backup:automatic:info [[test_site_name]].dev --format=table" - Then I should see a table with rows like: - """ - Daily Backup Hour - Weekly Backup Day - Weekly Backup Expiry - """ - - @vcr backup-schedule-get-none.yml - Scenario: Fail to show the backup schedule for an environment when none are scheduled - When I run "[[executable]] backup:automatic:info [[test_site_name]].dev" - Then I should get: - """ - Backups are not currently scheduled to be run. - """ diff --git a/tests/features/backup-create.feature b/tests/features/backup-create.feature deleted file mode 100644 index f1c721c0b..000000000 --- a/tests/features/backup-create.feature +++ /dev/null @@ -1,38 +0,0 @@ -Feature: Create a new backup for a site - In order to secure my site against failures - As a user - I need to be able to create a new backup of my site - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-create.yml - Scenario: Create a new backup of the entire environment - When I run "[[executable]] backup:create [[test_site_name]].dev" - Then I should get "." - And I should get "." - Then I should get: - """ - Created a backup of the dev environment - """ - - @vcr backup-create.yml - Scenario: Create a new backup of a specific element of the environment - When I run "[[executable]] backup:create [[test_site_name]].dev --element=database" - Then I should get "." - And I should get "." - Then I should get: - """ - Created a backup of the dev environment - """ - - @vcr backup-create.yml - Scenario: Create a new backup of the environment with a specific preservation - When I run "[[executable]] backup:create [[test_site_name]].dev --keep-for=90" - Then I should get "." - And I should get "." - Then I should get: - """ - Created a backup of the dev environment - """ diff --git a/tests/features/backup-get.feature b/tests/features/backup-get.feature deleted file mode 100644 index d44962f53..000000000 --- a/tests/features/backup-get.feature +++ /dev/null @@ -1,32 +0,0 @@ -Feature: Get a particular backup for a site - In order to secure my site against failures - As a user - I need to be able to get download information for a backup - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-get-file.yml - Scenario: Get the URL of the latest code backup - When I run "[[executable]] backup:get [[test_site_name]].dev --element=code" - Then I should get: - """ - https://pantheon-backups.s3.amazonaws.com/11111111-1111-1111-1111-111111111111/dev/1471562180_backup/[[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz?Signature=INoN9zDlMfWa8A%2B%2BtxqdLhRI1Rs%3D&Expires=1471565930&AWSAccessKeyId=AKIAJEYKXMCPBZQYJYXQ - """ - - @vcr backup-get-file.yml - Scenario: Get the URL of a specific backup by filename - When I run "[[executable]] backup:get [[test_site_name]].dev --file=[[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz" - Then I should get: - """ - https://pantheon-backups.s3.amazonaws.com/11111111-1111-1111-1111-111111111111/dev/1471562180_backup/[[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz?Signature=INoN9zDlMfWa8A%2B%2BtxqdLhRI1Rs%3D&Expires=1471565930&AWSAccessKeyId=AKIAJEYKXMCPBZQYJYXQ - """ - - @vcr backup-get-none.yml - Scenario: Fail to find a matching backup - When I run "[[executable]] backup:get [[test_site_name]].test --element=database" - Then I should get: - """ - No backups available. Create one with `terminus backup:create [[test_site_name]].test` - """ diff --git a/tests/features/backup-info.feature b/tests/features/backup-info.feature deleted file mode 100644 index 1b9c70bb1..000000000 --- a/tests/features/backup-info.feature +++ /dev/null @@ -1,38 +0,0 @@ -Feature: Get a particular backup for a site - In order to secure my site against failures - As a user - I need to be able to get information about a backup that has been made - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-get-file.yml - Scenario: Gets information about the latest code backup made - When I run "[[executable]] backup:info [[test_site_name]].dev --element=code" - Then I should get: "----------- -----------------------------------------------------" - And I should get: "Filename [[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz" - And I should get: "Size 31.8MB" - And I should get: "Date 2016-08-18 23:16:30" - And I should get: "Expiry 2017-08-19 05:02:06" - And I should get: "Initiator manual" - And I should get: "----------- -----------------------------------------------------" - - @vcr backup-get-file.yml - Scenario: Gets informtion about a backup selected by filename - When I run "[[executable]] backup:info [[test_site_name]].dev --file=[[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz" - Then I should get: "----------- -----------------------------------------------------" - And I should get: "Filename [[test_site_name]]_dev_2016-08-18T23-16-20_UTC_code.tar.gz" - And I should get: "Size 31.8MB" - And I should get: "Date 2016-08-18 23:16:30" - And I should get: "Expiry 2017-08-19 05:02:06" - And I should get: "Initiator manual" - And I should get: "----------- -----------------------------------------------------" - - @vcr backup-get-none.yml - Scenario: Failing to find a matching backup - When I run "[[executable]] backup:info [[test_site_name]].test --element=database" - Then I should get: - """ - No backups available. Create one with `terminus backup:create [[test_site_name]].test` - """ diff --git a/tests/features/backup-list.feature b/tests/features/backup-list.feature deleted file mode 100644 index 1109b0659..000000000 --- a/tests/features/backup-list.feature +++ /dev/null @@ -1,28 +0,0 @@ -Feature: List Backups for a Site - In order to ensure the security of my site content - As a user - I need to be able to list my backups. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-list.yml - Scenario: Show all backups for an environment - When I run "[[executable]] backup:list [[test_site_name]].dev --format=json" - Then I should have "7" records - And I should get: "code.tar.gz" - - @vcr backup-list.yml - Scenario: Filter backups by element - When I run "[[executable]] backup:list [[test_site_name]].dev --element=db --format=json" - Then I should have "2" records - And I should get: "database.sql.gz" - And I should not get: "code.tar.gz" - - @vcr backup-list-empty.yml - Scenario: Fail to show any backups because the list is empty - When I run "[[executable]] backup:list [[test_site_name]].dev --format=json" - Then I should have "0" records - And I should get the warning: "You have no backups." - diff --git a/tests/features/backup-restore.feature b/tests/features/backup-restore.feature deleted file mode 100644 index c500cb04d..000000000 --- a/tests/features/backup-restore.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Restore a backup for a site - In order to keep my site operating effectively - As a user - I need to be able to restore a backup I've created. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr backup-restore.yml - Scenario: Restore the latest code backup - When I run "[[executable]] backup:restore [[test_site_name]].dev --element=code --yes" - Then I should get: "Restored the backup to dev." - - @vcr backup-restore.yml - Scenario: Restore a specific backup referenced by filename - When I run "[[executable]] backup:restore [[test_site_name]].dev --file=[[test_site_name]]_dev_2016-10-25T19-13-37_UTC_files.tar.gz --yes" - Then I should get: "Restored the backup to dev." diff --git a/tests/features/bootstrap/FeatureContext.php b/tests/features/bootstrap/FeatureContext.php deleted file mode 100644 index 518fe766c..000000000 --- a/tests/features/bootstrap/FeatureContext.php +++ /dev/null @@ -1,1173 +0,0 @@ -replacePlaceholders($parameters['cache_dir'], $parameters); - $this->ensureDirectoryExists($parameters['cache_dir']); - $tests_root = dirname(dirname(__DIR__)); - $this->fixtures_dir = $tests_root . DIRECTORY_SEPARATOR . 'fixtures'. DIRECTORY_SEPARATOR .'functional'; - $this->cliroot = dirname($tests_root); - $this->executable = $this->cliroot . DIRECTORY_SEPARATOR . $parameters['executable']; - $this->parameters = $parameters; - $this->start_time = time(); - $this->connection_info = [ - 'host' => $parameters['host'], - 'machine_token' => $parameters['machine_token'], - 'verify_host_cert' => $parameters['verify_host_cert'] - ]; - - $this->cache_dir = $parameters['cache_dir']; - $this->cache_token_dir = $this->cache_dir . "/tokens"; - $this->ensureDirectoryExists($this->cache_token_dir); - $this->plugin_dir = $this->fixtures_dir . '/plugins'; - $this->ensureDirectoryExists($this->plugin_dir); - $this->plugin_dir_name = self::DEFAULT_PLUGIN_DIR_NAME; - } - - private function ensureDirectoryExists($dir) - { - if (!is_dir($dir)) { - mkdir($dir, 0700, true); - } - } - - /** - * Ensures a site of the given name exists - * - * @Given /^a site named "([^"]*)"$/ - * @Given /^a site named: (.*)$/ - * - * @param string $site Name of site to ensure exists - * @return boolean Always true, else errs - * @throws \Exception - */ - public function aSiteNamed($site) - { - try { - $this->iRun("[[executable]] site:lookup $site"); - } catch (TerminusException $e) { - throw new \Exception("Your user does not have a site named $site."); - } - return true; - } - - /** - * Ensures a site of the given name exists and belongs to given org - * @Given /^a site named "([^"]*)" belonging to "([^"]*)"$/ - * - * @param [string] $site Name of site to ensure exists - * @param [string] $org Name or UUID of organization to ensure ownership - * @return [boolean] Always true, else errs - */ - public function aSiteNamedBelongingTo($site, $org) - { - $output = $this->iGetInfoForTheSite($site); - if (!$this->checkResult($site, $output)) { - $this->iCreateSiteNamed('Drupal 7', $site, $org); - $recurse = $this->aSiteNamedBelongingTo($site, $org); - return $recurse; - } - return true; - } - - /** - * @BeforeScenario - * Runs before each scenario - * - * @param [ScenarioEvent] $event Feature information from Behat - * @return [void] - */ - public function before($event) - { - $this->setCassetteName($event); - $this->plugin_dir_name = self::DEFAULT_PLUGIN_DIR_NAME; - $this->environment_variables = []; - } - - /** - * Select which plugin directory will be used for the - * rest of the statements in the current scenario. - * @When /^I am using "([^"]*)" plugins/ - * @param string $dir_name - */ - public function selectPluginDir($dir_name) - { - $this->plugin_dir_name = $dir_name; - $this->iRun('[[executable]] self:clear-cache'); - } - - /** - * Changes or displays mode, given or not, of given site - * @Given /^the connection mode of "([^"]*)" is "([^"]*)"$/ - * @When /^I set the connection mode on "([^"]*)" to "([^"]*)"$/ - * @When /^I check the connection mode on "([^"]*)"$/ - * - * @param [string] $site Site to change or view connection mode of - * @param [string] $mode If set, changes mode to given. Else, displays mode - * @return [void] - */ - public function connectionMode($site, $mode = null) - { - if (is_null($mode)) { - $command = "[[executable]] site env:info dev --site=$site --field=connection_mode"; - } else { - $command = "[[executable]] connection:set $mode --site=$site --env=dev"; - } - $this->iRun($command); - } - - /** - * Adds $email user from $site - * @When /^I add "([^"]*)" to the team on "([^"]*)"$/ - * - * @param [string] $email Email address of user to add - * @param [string] $site Name of the site on which to operate - * @return [void] - */ - public function iAddToTheTeamOn($email, $site) - { - $this->iRun("[[executable]] site:team:add $site $email"); - } - - /** - * @When /^I am prompted to "([^"]*)" on "([^"]*)" at "([^"]*)"$/ - * - * @param [string] $prompt To be output before entering any key - * @param [string] $site Site about which prompt is regarding - * @param [string] $url URL to open after prompt - * @return [void] - */ - public function iAmPrompted( - $prompt, - $site, - $url = "https://[[dashboard_host]]/" - ) { - echo $prompt . PHP_EOL; - echo 'Then press any key.'; - $site = $this->replacePlaceholders($site); - $site_info = $this->iGetInfoForTheSite($site); - $url = $this->replacePlaceholders($url, $site_info); - $this->openInBrowser($url); - $line = trim(fgets(STDIN)); - } - - /** - * Logs in user with username and password set in behat.yml - * And a blank slate cache - * @Given /^I am authenticated$/ - * - * @return [void] - */ - public function iAmAuthenticated() - { - $this->iLogIn(); - } - - /** - * @Given /^I check the list of environments on "([^"]*)"$/ - * - * @param [string] $site Site to check environments of - * @return [string] $environments Environment list - */ - public function iCheckTheListOfEnvironmentsOn($site) - { - $environments = $this->iRun("[[executable]] env:list --site=$site"); - return $environments; - } - - /** - * Checks to see if a URL is valid - * @Then /^I check the URL "([^"]*)" for validity$/ - * - * @param [string] $url URL to check for validity - * @return [void] - */ - public function iCheckTheUrlForValidity($url) - { - $url = $this->replacePlaceholders($url); - if (filter_var($url, FILTER_VALIDATE_URL) === false) { - throw new \Exception("$url URL is not valid."); - } - } - - /** - * Checks which user Terminus is operating as - * @Given /^I check the user I am logged in as$/ - * - * @return [void] - */ - public function iCheckTheUserAmLoggedInAs() - { - $this->iRun($this->executable . ' auth:whoami'); - } - - /** - * Clears site caches - * @When /^I clear the caches on the "([^"]*)" environment of "([^"]*)"$/ - * - * @param [string] $env Environment on which to clear caches - * @param [string] $site Site on which to clear caches - * @return [void] - */ - public function iClearTheCaches($env, $site) - { - $this->iRun("[[executable]] env:clear-cache $env --site=$site"); - } - - /** - * @When /^I clone the "([^"]*)" environment into the "([^"]*)" environment on "([^"]*)"$/ - * - * @param [string] $from_env Environment to clone from - * @param [string] $to_env Environment to clone into - * @param [string] $site Site on which to clone an environment - * @return [void] - */ - public function iCloneTheEnvironment($from_env, $to_env, $site) - { - $this->iRun("[[executable]] env:clone --site=$site --from-env=$from_env --to-env=$to_env --yes"); - } - - /** - * Commits changes to given site's given env with given message - * @When /^I commit changes to the "([^"]*)" environment of "([^"]*)" with message "([^"]*)"$/ - * - * @param [string] $env Name of environment on which to commit - * @param [string] $site Name of site on which to commit - * @param [string] $message Message for commit - * @return [void] - */ - public function iCommitChanges($env, $site, $message) - { - $this->iRun("[[executable]] env:commit $env --site=$site --message=" . '"' . $message . '" --yes'); - } - - /** - * Creates a site for the given name - * @When /^I create a "([^"]*)" site named "([^"]*)"$/ - * - * @param [string] $upstream Which upstream to use as new site's source - * @param [string] $name Name of site to create - * @param [string] $org Name or UUID of organization to own the new site - * @return [void] - */ - public function iCreateSiteNamed($upstream, $name, $org = false) - { - $append_org = ''; - if ($org !== false) { - $append_org = '--org=' . $org; - } - $this->iRun("[[executable]] site:create $name --label=$name --upstream=\"$upstream\" $append_org"); - } - - /** - * Creates a multidev env of given name on given site cloning given env - * @When /^I create multidev environment "([^"]*)" from "([^"]*)" on "([^"]*)"$/ - * - * @param [string] $multidev Name of new multidev environment - * @param [string] $env Name of environment to copy - * @param [string] $site Name of site on which to create multidev env - * @return [void] - */ - public function iCreateMultidevEnv($multidev, $env, $site) - { - $this->iRun("[[executable]] multidev:create --site=$site --to-env=$multidev --from-env=$env"); - } - - /** - * Deletes a site of the given name - * @When /^I delete the site named "([^"]*)"$/ - * - * @param [string] $site Name of site to delete - * @return [void] - */ - public function iDeleteTheSiteNamed($site) - { - $this->iRun("[[executable]] site:delete $site --yes"); - } - - /** - * @Given /^I deploy the "([^"]*)" environment from "([^"]*)" of "([^"]*)" with the message "([^"]*)"$/ - * - * @param [string] $env Name of environment to deploy - * @param [string] $from Name of environment to deploy from - * @param [string] $site Name of site on which to deploy environment - * @param [string] $message Commit message for the log - * @return [void] - */ - public function iDeployTheEnvironmentOf($env, $from, $site, $message) - { - $this->iRun("[[executable]] env:deploy --site=$site --to-env=$env --from-env=$from --note=$message"); - } - - /** - * Intentionally expires the user's session - * @When /^I expire my session$/ - * - * @return [void] - */ - public function iExpireMySession() - { - $session = json_decode(file_get_contents($this->cache_file_name)); - $session->session_expire_time = -386299860; - file_put_contents($this->cache_file_name, $session); - } - - /** - * Queries for info for a given site - * @Given /^I get info for the "([^"]*)" environment of "([^"]*)"$/ - * - * @param [string] $env Environment to get info on - * @param [string] $site Site to get info on - * @return [string] Output from command run - */ - public function iGetInfoForTheEnvironmentOf($env, $site) - { - $return = json_decode($this->iRun("[[executable]] env:info $env --site=$site --env=$env --format=json")); - return $return; - } - - /** - * Queries for info for a given site - * @Given /^I get info for the site "([^"]*)"$/ - * - * @param [string] $site Site to get info on - * @return [string] Output from command run - */ - public function iGetInfoForTheSite($site) - { - $return = $this->iRun("[[executable]] site:info $site"); - return $return; - } - - /** - * Checks which user Terminus is operating as - * @Given /^I have at least "([^"]*)" site$/ - * @Given /^I have at least "([^"]*)" sites$/ - * - * @param [integer] $min The minimum number of sites to have - * @return [boolean] $has_the_min - */ - public function iHaveAtLeastSite($min) - { - $sites = json_decode($this->iRun($this->executable . ' site:list --format=json')); - $has_the_min = ($min <= count($sites)); - if (!$has_the_min) { - throw new \Exception(count($sites) . ' sites found.'); - } - return $has_the_min; - } - - /** - * Removes all machine tokens from the running machine - * @Given I have no saved machine tokens - * - * @return boolean - */ - public function iHaveNoSavedMachineTokens() - { - $this->iRun("rm {$this->cache_token_dir}/*"); - return true; - } - - /** - * Ensures at least X machine tokens exist in the tokens directory - * @Given I have at least :num_tokens saved machine tokens - * - * @param integer $num_tokens Number of tokens to ensure exist - * @return boolean - */ - public function iHaveSavedMachineTokens($num_tokens) - { - switch ($num_tokens) { - case 0: - break; - case 1: - $this->iLogIn(); - break; - default: - $this->iLogIn(); - for ($i = 1; $i <= $num_tokens; $i++) { - $this->iRun("cp {$this->cache_token_dir}/[[username]]$i"); - } - break; - } - return true; - } - - /** - * Checks which user Terminus is operating as - * @Given /^I have "([^"]*)" site$/ - * @Given /^I have "([^"]*)" sites$/ - * @Given /^I have no sites$/ - * - * @param [integer] $num The number of sites to have - * @return [boolean] $has_amount - */ - public function iHaveSites($num = 0) - { - $sites = json_decode($this->iRun($this->executable . ' site:list --format=json')); - $has_amount = ($num === count($sites)); - if (!$has_amount) { - throw new \Exception(count($sites) . ' sites found.'); - } - return $has_amount; - } - - /** - * @When /^I initialize the "([^"]*)" environment on "([^"]*)"$/ - * - * @param [string] $env Name of environment to initialize - * @param [string] $site Name of site on which to initialize environment - * @return [void] - */ - public function iInitializeTheEnvironmentOn($env, $site) - { - $this->iRun("[[executable]] env:deploy $env --site=$site"); - } - - /** - * Installs given module to given Drupal site - * @When /^I install the module "([^"]*)" to "([^"]*)"$/ - * - * @param [string] $module Name of Drupal module to install - * @param [string] $site Name of the site to which to install - * @return [void] - */ - public function iInstallTheModuleTo($module, $site) - { - $this->iRun("[[executable]] drush --command='dl $module -y' --site=$site --env=dev"); - } - - /** - * Lists all sites user is on the team of - * @When /^I list the sites$/ - * - * @return [void] - */ - public function iListTheSites() - { - $this->iRun($this->executable . ' site:list'); - } - - /** - * Lists team members - * @Given /^I list the team members on "([^"]*)"$/ - * - * @param [string] $site Name of site of which to retrieve team members - * @return [void] - */ - public function iListTheTeamMembersOn($site) - { - $this->iRun("[[executable]] site:team:list $site"); - } - - /** - * List the backups of the given environment of the given site - * @When /^I list the backups of the "([^"]*)" environment of "([^"]*)"$/ - * - * @param [string] $env Environment of which to list the backups - * @param [string] $site Site of which to list the backups - * @return [string] Output to the CL - */ - public function iListTheBackupsOf($env, $site) - { - $return = $this->iRun("[[executable]] backup:list --site=$site --env=$env"); - return $return; - } - - /** - * Logs in user - * @When /^I log in via machine token "([^"]*)"$/ - * @When /^I log in via machine token$/ - * @When /^I log in$/ - * - * @param [string] $token A Pantheon machine token - * @return [void] - */ - public function iLogIn($token = '[[machine_token]]') - { - $this->iRun("[[executable]] auth:login --machine-token=$token"); - } - - /** - * Logs in a user with a locally saved machine token - * @When /^I log in as "([^"]*)"$/ - * - * @param [string] $email An email address - * @return [void] - */ - public function iLogInAs($email = '[[username]]') - { - $this->iRun("[[executable]] auth:login --email=$email"); - } - - /** - * Logs user out - * @When /^I log out$/ - * @Given /^I am not authenticated$/ - * - * @return [void] - */ - public function iLogOut() - { - $this->iRun("[[executable]] auth:logout"); - } - - /** - * Makes a backup of given elements of given site's given environment - * @When /^I back up "([^"]*)" elements of the "([^"]*)" environment of "([^"]*)"/ - * @When /^I back up the "([^"]*)" element of the "([^"]*)" environment of "([^"]*)"/ - * - * @param [string] $elements Elements to back up - * @param [string] $env Environment to back up - * @param [string] $site Name of the site to back up - * @return [void] - */ - public function iMakeBackupElementsOfTheEnvironment($elements, $env, $site) - { - $this->iRun("[[executable]] backup:create --site=$site --env=$env --element=$elements"); - } - - /** - * @When /^I merge the "([^"]*)" environment into the "([^"]*)" environment on "([^"]*)"$/ - * - * @param [string] $from_env Environment to merge from - * @param [string] $to_env Environment to merge into - * @param [string] $site Name of site on which to merge environments - * @return [void] - */ - public function iMergeTheEnvironment($from_env, $to_env, $site) - { - if ($to_env ==='dev') { - $this->iRun("[[executable]] env:merge-to-dev $site.$from_env"); - } else { - $this->iRun("[[executable]] env:merge-from-dev $site.$to_env"); - } - } - - /** - * Removes $email user from $site - * @When /^I remove "([^"]*)" from the team on "([^"]*)"$/ - * - * @param [string] $email Email address of user to add - * @param [string] $site Name of the site on which to operate - * @return [void] - */ - public function iRemoveFromTheTeamOn($email, $site) - { - $this->iRun("[[executable]] site:team:remove $site $email"); - } - - /** - * @Given /^I restore the "([^"]*)" environment of "([^"]*)" from backup$/ - * - * @param [string] $env Environment to restore from backup - * @param [string] $site Site to restore from backup - * @return [void] - */ - public function iRestoreTheEnvironmentOfFromBackup($env, $site) - { - $this->iRun("[[executable]] backup:restore $site.$env"); - } - - /** - * @When I set the environment variable :arg1 to :arg2 - * - * @param [string] $var Environment variable name - * @param [string] $value Environment variable value - * @return [void] - */ - public function iSetTheEnvironmentVariableTo($var, $value) - { - $this->environment_variables[$var] = $value; - } - - /** - * @When /^I run "([^"]*)"$/ - * @When /^I run: (.*)$/ - * @When /^I run:$/ - * Runs command and saves output - * - * @param [string] $command To be entered as CL stdin - * @return [string] Returns output of command run - */ - public function iRun($command) - { - $regex = '/(?cliroot), $command); - $command = $this->replacePlaceholders($command); - - if (isset($this->connection_info['host'])) { - $command = "TERMINUS_HOST={$this->connection_info['host']} $command"; - } - if (isset($this->connection_info['verify_host_cert'])) { - $verify = $this->connection_info['verify_host_cert'] ? '1' : '0'; - $command = "TERMINUS_VERIFY_HOST_CERT=$verify $command"; - } - if (isset($this->cassette_name)) { - $command = "TERMINUS_VCR_CASSETTE={$this->cassette_name} $command"; - } - if (!empty($mode = $this->parameters['vcr_mode'])) { - $command = "TERMINUS_VCR_MODE=$mode $command"; - } - - // Determine which plugin dir we should use - $plugins = $this->plugin_dir . DIRECTORY_SEPARATOR . $this->plugin_dir_name; - // Pass the cache directory to the command so that tests don't poison the user's cache. - $command = "TERMINUS_TEST_MODE=1 TERMINUS_CACHE_DIR=$this->cache_dir TERMINUS_TOKENS_DIR=$this->cache_token_dir TERMINUS_PLUGINS_DIR=$plugins $command"; - - // Insert any envrionment variables defined for this scenario - foreach ($this->environment_variables as $var => $value) { - $var = $this->replacePlaceholders($var); - $value = $this->replacePlaceholders($value); - $command = "{$var}={$value} $command"; - } - ob_start(); - passthru($command . ' 2>&1'); - $this->output = ob_get_clean(); - - // Terminus commands might complete their tasks even with PHP warnings - // or notices. But those should still trigger test failures. - if ($this->checkResult("PHP Warning:", $this->output)) { - throw new \Exception("The Terminus command generated a PHP Warning:\n{$this->output}\n"); - } - if ($this->checkResult("PHP Notice:", $this->output)) { - throw new \Exception("The Terminus command generated a PHP Notice:\n{$this->output}\n"); - } - - return $this->output; - } - - /** - * @Then /^I should get:$/ - * @Then /^I should get "([^"]*)"$/ - * @Then /^I should get: "([^"]*)"$/ - * Checks the output for the given string - * - * @param [string] $string Content which ought not be in the output - * @return [boolean] $i_have_this True if $string exists in output - * @throws Exception - */ - public function iShouldGet($string) - { - $i_have_this = $this->iShouldGetOneOfTheFollowing($string); - return $i_have_this; - } - - /** - * @Then /^I should get the warning:$/ - * @Then /^I should get the warning "([^"]*)"$/ - * @Then /^I should get the warning: "([^"]*)"$/ - * Checks the output for the given string that it is a warning with the given string - * - * @param [string] $string Content which ought not be in the output - * @return [boolean] $i_have_this True if $string exists in output - * @throws Exception - */ - public function iShouldGetTheWarning($string) - { - return $this->iShouldGet("[warning] $string"); - } - - /** - * Checks the output for a table with the given headers - * - * @Then /^I should see a table with the headers$/ - * @Then /^I should see a table with the headers: ([^"]*)$/ - * @Then /^I should see a table with the headers: "([^"]*)"$/ - * - * @param string $headers Comma separated row values to match - * @return boolean true if $headers exists in output - * - * @throws \Exception - */ - public function shouldSeeATableWithHeaders($headers) - { - $table_headers = explode(',', $headers); - foreach ($table_headers as $column) { - if (!$this->checkResult(trim((string)$column), $this->output)) { - throw new \Exception("Expected table headers to include: '{$column}' in table:\n{$this->output}\n"); - } - } - - return true; - } - - /** - * Checks the output for a table with the given row values - * - * @Then /^I should see a table with rows like:$/ - * @Then /^I should see a table with rows like"([^"]*)"$/ - * @Then /^I should see a table with rows like: "([^"]*)"$/ - * - * @param $rows string newline separated row values to match - * @return boolean true if all of the rows are present in the output - * @throws \Exception - */ - public function iShouldSeeATableWithRows($rows) - { - $lines = explode("\n", $rows); - foreach ($lines as $line) { - if (!$this->checkResult(trim((string)$line), $this->output)) { - throw new \Exception("Expected the row '{$line}' in table:\n{$this->output}\n"); - } - } - - return true; - } - - /** - * Checks the output for a table with the given number of rows - * - * @Then I should see a table with :num_rows row - * @Then I should see a table with :num_rows rows - * @Then that table should have :num_rows row - * @Then that table should have :num_rows rows - * - * @param integer $num Number of rows to be found in the table - * @return boolean true if all of the given number of rows are present - * @throws \Exception - */ - public function iShouldSeeATableWithSoManyRows($num) - { - $lines = explode("\n", $this->output); - $boundaries = []; - foreach ($lines as $key => $line) { - if (strpos(trim($line), '---') === 0) { - $boundaries[] = $key; - } - } - $row_count = (count($boundaries) < 3) ? 0 : ($boundaries[2] - $boundaries[1] - 1); - - $num_rows = ($num === 'no') ? 0 : (integer)$num; - if ($num_rows !== $row_count) { - throw new \Exception("The table had $row_count rows, not $num_rows."); - } - return true; - } - - /** - * Checks the output for a type of message. Message to match is optional. - * - * @Then /^I should see a[n]? (notice|warning|error) message$/ - * @Then /^I should see a[n]? (notice|warning|error) message: (.*)$/ - * - * @param $type string One of the standard logging levels - * @param $message string Optional message to match in the output - * @return bool True if message is the correct type and exists in output if given - * @throws \Exception - */ - public function iShouldSeeATypeOfMessage($type, $message = null) - { - $expected_message = "[$type]"; - if (!empty($message)) { - $expected_message .= " {$message}"; - } - - $compressed_output = preg_replace('/\s+/', ' ', $this->output); - if (strpos($compressed_output, $expected_message) === false) { - throw new \Exception("Expected $expected_message in message: $this->output"); - } - - return true; - } - - /** - * @Then /^I should get a valid UUID/ - * Checks the output for a valid UUID - * - * @return bool - * @throws Exception - */ - public function iShouldGetValidUuid() - { - preg_match( - '/^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$/', - $this->output, - $matches - ); - if (empty($matches) - && ($this->output != '11111111-1111-1111-1111-111111111111') - ) { - throw new \Exception($this->output . ' is not a valid UUID.'); - } - return true; - } - - /** - * @Then /^I should get one of the following:$/ - * @Then /^I should get one of the following "([^"]*)"$/ - * @Then /^I should get one of the following: "([^"]*)"$/ - * Checks the output for the given substrings, comma-separated - * - * @param [array] $list_string Content which ought to be in the output - * @return [boolean] True if a $string exists in output - * @throws Exception - */ - public function iShouldGetOneOfTheFollowing($list_string) - { - $strings = explode(',', $list_string); - foreach ($strings as $string) { - if ($this->checkResult(trim((string)$string), $this->output)) { - return true; - } - } - throw new \Exception("Actual output:\n" . $this->output); - } - - /** - * @Then /^I should not get one of the following:$/ - * @Then /^I should not get one of the following "([^"]*)"$/ - * @Then /^I should not get one of the following: "([^"]*)"$/ - * Checks the output for the given substrings, comma-separated - * - * @param [array] $list_string Content which ought not be in the output - * @return [boolean] True if a $string does not exist in output - */ - public function iShouldNotGetOneOfTheFollowing($list_string) - { - try { - $this->iShouldGetOneOfTheFollowing($list_string); - } catch (\Exception $e) { - return true; - } - throw new \Exception("Actual output:\n" . $this->output); - } - - /** - * Checks for backups made since the test started running - * @Then /^I should have a new backup$/ - * - * @return [boolean] True if new backup exists - */ - public function iShouldHaveNewBackup() - { - $regex = "/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/"; - preg_match_all($regex, $this->output, $matches); - foreach ($matches[0] as $date) { - if ($this->start_time < strtotime($date)) { - return true; - } - } - throw new \Exception('No new backups were created.' . PHP_EOL); - } - - /** - * Checks the number of records returned against a given quantity - * @Then /^I should have "([^"]*)" records$/ - * - * @param [integer] $number Number of records to check for - * @return [void] - */ - public function iShouldHaveRecords($number) - { - $record_count = count((array)json_decode($this->output)); - if ((integer)$number != $record_count) { - throw new \Exception("Wanted $number records, got " . $record_count . '.'); - } - return true; - } - - /** - * Ensures that you do not recieve param $string as result - * @Then /^I should not get:$/ - * @Then /^I should not get: "([^"]*)"$/ - * - * @param [string] $string Content which ought not be in the output - * @return [boolean] True if $string does not exist in output - */ - public function iShouldNotGet($string) - { - if ($this->checkResult((string)$string, $this->output)) { - throw new \Exception("Actual output:\n" . $this->output); - } - return true; - } - - /** - * Checks the output against a a type of message. - * - * @Then /^I should not see a (notice|warning)$/ - * @Then /^I should not see an (error)$/ - * - * @param $type string One of the standard logging levels - * @return bool True if message is the expected type in output is not given - * @throws \Exception - */ - public function iShouldNotSeeATypeOfMessage($type, $message = null) - { - try { - $this->iShouldSeeATypeOfMessage($type, $message); - } catch (\Exception $e) { - $exception_message = $e->getMessage(); - if ((strpos($exception_message, $type) !== false)) { - return true; - } - throw $e; - } - throw new \Exception("Expected no $type in message: $this->output"); - } - - /** - * Ensures that a user is not on a site's team - * @Given /^"([^"]*)" is a member of the team on "([^"]*)"$/ - * - * @param [string] $member Email address of the member on the team of - * @param [string] $site Site which the member should be on the team of - * @return [boolean] True if $member does exists in output - */ - public function isMemberOfTheTeamOn($member, $site) - { - $this->iRun("[[executable]] site:team:list $site"); - $is_member = $this->iShouldGet($member); - return $is_member; - } - - /** - * Ensures that a user is not on a site's team - * @Given /^"([^"]*)" is not a member of the team on "([^"]*)"$/ - * - * @param [string] $member Email address of the member not on the team - * @param [string] $site Site which the member should not be on the team of - * @return [boolean] True if $member does not exist in output - */ - public function isNotMemberOfTheTeamOn($member, $site) - { - $this->iRun("[[executable]] site:team:list $site"); - $is_not_member = $this->iShouldNotGet($member); - return $is_not_member; - } - - /** - * Ensures there is no site with the given name. Loops until this is so - * @Given /^no site named "([^"]*)"$/ - * - * @param [string] $site Name of site to ensure does not exist - * @return [boolean] Always returns true - */ - public function noSiteNamed($site) - { - try { - $this->aSiteNamed($site); - } catch (\Exception $e) { - return true; - } - throw new \Exception("A site named $site was found."); - } - - /** - * Gets or sets service level - * @When /^I set the service level of "([^"]*)" to "([^"]*)"$/ - * @Given /^I check the service level of "([^"]*)"$/ - * @Given /^the service level of "([^"]*)" is "([^"]*)"$/ - * - * @param [string] $site Name of site to work on - * @param [string] $service_level If not false, will set service level to this - * @return [void] - */ - public function serviceLevel($site, $service_level = null) - { - if (is_null($service_level)) { - $command = "[[executable]] site:info $site --field=service_level"; - } else { - $command = "[[executable]] service-level:set $service_level --site=$site"; - } - $this->iRun($command); - } - - /** - * Automatically assigns pass/fail/skip to the test result - * @Then /^I "([^"]*)" the test$/ - * - * @param [string] $status Status to assign to the test - * @return [boolean] Always true, else errs - */ - public function setTestStatus($status) - { - if ($status == 'pending') { - throw new \Exception("Implementation of this functionality is pending."); - } - throw new \Exception("Test explicitly set to $status"); - } - - /** - * Checks the the haystack for the needle - * - * @param [string] $needle That which is searched for - * @param [string] $haystack That which is searched inside - * @return [boolean] $result True if $nededle was found in $haystack - */ - private function checkResult($needle, $haystack) - { - $needle = $this->replacePlaceholders($needle); - $result = preg_match("#" . preg_quote($needle, '#') . '#s', $haystack); - return $result; - } - - /** - * Returns tags in easy-to-use array format. - * - * @param [ScenarioEvent] $event Feature information from Behat - * @return $tags [array] An array of strings corresponding to tags - */ - private function getTags($event) - { - $unformatted_tags = $event->getScenario()->getTags(); - $tags = array(); - - foreach ($unformatted_tags as $tag) { - $tag_elements = explode(' ', $tag); - $index = array_shift($tag_elements); - if (count($tag_elements) == 1) { - $tag_elements = array_shift($tag_elements); - } - $tags[$index] = $tag_elements; - } - - return $tags; - } - - /** - * Opens param $url in the default browser - * - * @param [string] $url URL to open in browser - * @return [void] - */ - private function openInBrowser($url) - { - $url = $this->replacePlaceholders($url); - switch (php_uname('s')) { - case "Darwin": - $cmd = "open"; - break; - case "Windows NT": - $cmd = "start"; - break; - case "Linux": - default: - $cmd = "xdg-open"; - break; - } - exec("$cmd $url"); - } - - /** - * @When /^This step is implemented I will test: (.*)$/ - * @When /^this step is implemented I will test: (.*)$/ - * - * @param string $description feature description of what is still pending - */ - public function thisStepIsPending($description) - { - throw new PendingException("Testing $description is pending"); - } - - /** - * @When /^I enter: (.*)$/ - */ - public function iEnterInput() - { - throw new PendingException("Interactivity is not yet implemented"); - } - - /** - * Exchanges values in given string with square brackets for values - * in $this->parameters - * - * @param [string] $string The string to perform replacements on - * @param [array] $replacements Used to replace with non-parameters - * @return [string] $string The modified param string - */ - private function replacePlaceholders($string, $replacements = array()) - { - $regex = '~\[\[(.*?)\]\]~'; - preg_match_all($regex, $string, $matches); - if (empty($replacements)) { - $replacements = $this->parameters; - } - - foreach ($matches[1] as $id => $replacement_key) { - if (isset($replacements[$replacement_key])) { - $replacement = $replacements[$replacement_key]; - if (is_array($replacement)) { - $replacement = array_shift($replacement); - } - $string = str_replace($matches[0][$id], $replacement, $string); - } - } - - return $string; - } - - /** - * Sets $this->cassette_name and returns name of the cassette to be used. - * - * @param [array] $event Feature information from Behat - * @return [string] Of scneario name, lowercase, with underscores and suffix - */ - private function setCassetteName($event) - { - $tags = $this->getTags($event); - $this->cassette_name = false; - if (isset($tags['vcr'])) { - $this->cassette_name = $tags['vcr']; - } - return $this->cassette_name; - } - - /** - * @Then I should see a progress bar with the message: :message - */ - public function iShouldSeeAProgressBarWithTheMessage($message) - { - mb_substr_count( - $this->output, - $message - ) == 1 - && - mb_substr_count( - $this->output, - 'Progress: ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0%' - ) == 1 - && - mb_substr_count( - $this->output, - 'Progress: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%' - ) == 1; - } -} diff --git a/tests/features/branch-list.feature b/tests/features/branch-list.feature deleted file mode 100644 index f5d7edb95..000000000 --- a/tests/features/branch-list.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Listing site branches - In order to maintain my git repository for my site - As a user - In need to be able to list extant branches - - Background: I am authenticated and have a site called [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr branch-list.yml - Scenario: Listing the branches of a site - When I run "[[executable]] branch:list [[test_site_name]]" - Then I should get: "master" - - @vcr branch-list-empty.yml - Scenario: Failing to list the branches of the site - When I run "[[executable]] branch:list [[test_site_name]]" - Then I should get the warning: "You have no branches" diff --git a/tests/features/connection-info.feature b/tests/features/connection-info.feature deleted file mode 100644 index cce5c41e0..000000000 --- a/tests/features/connection-info.feature +++ /dev/null @@ -1,107 +0,0 @@ -@environment @connection -Feature: Environment Connection Info Command - In order to see connection parameters for remotely accessing the environment of a given site - As a Terminus user - I want a command to view the current connection parameters. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named: [[test_site_name]] - - @vcr connection-info.yml - Scenario: Show the default connection info for a site environment - When I run "[[executable]] connection:info [[test_site_name]].dev" - Then I should see a table with rows like: - """ - SFTP Command - Git Command - MySQL Command - Redis Command - """ - And I should not get: - """ - Git URL - """ - - @vcr connection-info.yml - Scenario: Show connection info for a site environment using a qualified field glob - When I run "[[executable]] connection:info [[test_site_name]].dev --fields='*_url'" - Then I should see a table with rows like: - """ - SFTP URL - Git URL - MySQL URL - """ - And I should not get: - """ - Git Command - """ - - @vcr connection-info.yml - Scenario: Show all connection info for a site environment using a field glob - When I run "[[executable]] connection:info [[test_site_name]].dev --fields='*'" - Then I should see a table with rows like: - """ - SFTP Command - SFTP Username - SFTP Host - SFTP Password - SFTP URL - Git Command - Git Username - Git Host - Git Port - Git URL - MySQL Command - MySQL Username - MySQL Host - MySQL Password - MySQL URL - MySQL Port - MySQL Database - Redis Command - Redis Port - Redis URL - Redis Password - """ - - @vcr connection-info.yml - Scenario: Show only a specific connection info parameter for a site environment - When I run "[[executable]] connection:info [[test_site_name]].dev --fields=git_command" - Then I should see a table with rows like: - """ - Git Command - """ - And I should not get: - """ - SFTP Command - """ - - @vcr connection-info.yml - Scenario: Show only a specific connection info parameter using a field label - When I run "[[executable]] connection:info [[test_site_name]].dev --fields='Git Command'" - Then I should see a table with rows like: - """ - Git Command - """ - And I should not get: - """ - SFTP Command - """ - - @vcr connection-info.yml - Scenario: Show only a specific connection info parameter using a single field key - When I run "[[executable]] connection:info [[test_site_name]].dev --field=git_command" - Then I should see a table with rows like: - """ - git clone ssh://codeserver - """ - And I should not get: - """ - Git Command - """ - - @vcr connection-info.yml - Scenario: Show an error if the environment is not correctly specified - When I run "[[executable]] connection:info [[test_site_name]]" - Then I should see an error message: The environment argument must be given as . diff --git a/tests/features/connection-set.feature b/tests/features/connection-set.feature deleted file mode 100644 index 71c73c1e5..000000000 --- a/tests/features/connection-set.feature +++ /dev/null @@ -1,43 +0,0 @@ -Feature: Set a site's connection mode - In order to ensure the correct sort of connectivity for my site - As a user - I need to be able to change my site's connection mode. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr connection-set-git.yml - Scenario: Setting connection mode to git - When I run "[[executable]] connection:set [[test_site_name]].dev git" - Then I should see a notice message: Enabling git push mode for "dev" - - @vcr connection-set-sftp.yml - Scenario: Setting connection mode to sftp - When I run "[[executable]] connection:set [[test_site_name]].dev sftp" - Then I should see a notice message: Enabling on-server development via SFTP for "dev" - - @vcr connection-set-sftp-uncommitted-changes.yml - Scenario: Setting connection mode to sftp - When I run "[[executable]] connection:set [[test_site_name]].dev git -y" - Then I should get: "This environment has uncommitted changes which will be lost by changing its connection mode. If you wish to save these changes, use `terminus env:commit [[test_site_name]].dev`." - And I should see a notice message: Enabling on-server development via SFTP for "dev" - - @vcr connection-set-git.yml - Scenario: Failing to set the connection mode to the current sftp mode - # Note: The VCR fixture has the environment in sftp mode to start. Want a given like: - # Given the [[test_site_name]].dev environment is in the sftp connection mode - When I run "[[executable]] connection:set [[test_site_name]].dev sftp" - Then I should see a notice message: The connection mode is already set to sftp. - - @vcr connection-set-sftp.yml - Scenario: Failing to set the connection mode to the current git mode - # Note: The VCR fixture has the environment in git mode to start. Want a given like: - # Given the [[test_site_name]].dev environment is in the git connection mode - When I run "[[executable]] connection:set [[test_site_name]].dev git" - Then I should see a notice message: The connection mode is already set to git. - - @vcr connection-set-sftp.yml - Scenario: Attempting to set connection mode to an invalid mode - When I run "[[executable]] connection:set [[test_site_name]].dev invalid" - Then I should see an error message: You must specify the mode as either sftp or git. diff --git a/tests/features/dashboard.feature b/tests/features/dashboard.feature deleted file mode 100644 index d2ac7652c..000000000 --- a/tests/features/dashboard.feature +++ /dev/null @@ -1,27 +0,0 @@ -Feature: Accessing the Dashboard - In order script the opening of Dashboard pages - As a user - I need to be able to get the URL of my Dashboard from Terminus - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr dashboard.yml - Scenario: Printing out a user account Dashboard URL - When I run "[[executable]] dashboard:view --print" - Then I should get: "https://[[dashboard_host]]/users/[[user_id]]#sites" - - @vcr dashboard.yml - Scenario: Printing out the site Dashboard URL - When I run "[[executable]] dashboard:view [[test_site_name]] --print" - Then I should get: "https://[[dashboard_host]]/sites/11111111-1111-1111-1111-111111111111" - - @vcr dashboard.yml - Scenario: Printing out the site Dashboard URL for a specific environment - When I run "[[executable]] dashboard:view [[test_site_name]].dev --print" - Then I should get: "https://[[dashboard_host]]/sites/11111111-1111-1111-1111-111111111111#dev" - - Scenario: Opening a Dashboard window automatically - # We cannot test for it, but `terminus dashboard:view ...` without `--print` - # should open the Dashboard at the URL it generates. diff --git a/tests/features/domain-primary.feature b/tests/features/domain-primary.feature deleted file mode 100644 index 3c9f0bd6d..000000000 --- a/tests/features/domain-primary.feature +++ /dev/null @@ -1,28 +0,0 @@ -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 "[[executable]] 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 "[[executable]] 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/features/domain.feature b/tests/features/domain.feature deleted file mode 100644 index 8d3224630..000000000 --- a/tests/features/domain.feature +++ /dev/null @@ -1,72 +0,0 @@ -Feature: Adding domains to an environment - In order to ensure that my site is accessible - As a user - I need to be able to manage domains attached to my site's environnments - - 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-add.yml - Scenario: Adding a domain to an environment - When I run "[[executable]] domain:add [[test_site_name]].live testdomain.com" - Then I should get: - """ - Added testdomain.com to [[test_site_name]].live - """ - - @vcr domain-remove.yml - Scenario: Removing a domain from an environment - When I run "[[executable]] domain:remove [[test_site_name]].live testdomain.com" - Then I should get: - """ - Removed testdomain.com from [[test_site_name]].live - """ - - @vcr domain-list.yml - Scenario: Listing all domains belonging to an environment - When I run "[[executable]] domain:list [[test_site_name]].live" - Then I should see a table with rows like: - """ - Domain/ID - Type - Is Deletable - """ - - @vcr domain-list-empty.yml - Scenario: Listing all domains belonging to an environment - When I run "[[executable]] domain:list [[test_site_name]].live" - Then I should get the warning: "You have no domains." - And I should have "0" records - - @vcr domain-lookup.yml - Scenario: Looking up a domain belonging to [[test_site_name]] - When I run "[[executable]] domain:lookup dev-[[test_site_name]].onebox.pantheon.io" - Then I should get: "This operation may take a long time to run." - And I should get: "---------------- --------------------------------------" - And I should get: "Site ID 11111111-1111-1111-1111-111111111111" - And I should get: "Site Name [[test_site_name]]" - And I should get: "Environment ID dev" - And I should get: "---------------- --------------------------------------" - - @vcr domain-lookup.yml - Scenario: Failing to look up an invalid domain - When I run "[[executable]] domain:lookup invalid" - Then I should get: "This operation may take a long time to run." - And I should get: - """ - Could not locate an environment with the domain invalid. - """ - - @vcr domain-dns.yml - Scenario: Looking up the DNS recommendations for [[test_site_name]] - When I run "[[executable]] domain:dns [[test_site_name]].dev" - Then I should get: "-------------------- ------------- ---------------------------------- ---------------------------------- -------- ------------------------" - And I should get: "Domain Record Type Recommended Value Detected Value Status Status Message" - And I should get: "-------------------- ------------- ---------------------------------- ---------------------------------- -------- ------------------------" - And I should get: "www.[[test_site_name]].me CNAME live-[[test_site_name]].[[php_site_domain]] live-[[test_site_name]].[[php_site_domain]] okay Correct value detected" - And I should get: "[[test_site_name]].me A 23.185.0.2 23.185.0.2 okay Correct value detected" - And I should get: "[[test_site_name]].me AAAA 2620:12a:8000::2 2620:12a:8000::2 okay Correct value detected" - And I should get: "[[test_site_name]].me AAAA 2620:12a:8001::2 2620:12a:8001::2 okay Correct value detected" - And I should get: "-------------------- ------------- ---------------------------------- ---------------------------------- -------- ------------------------" - diff --git a/tests/features/drush.feature b/tests/features/drush.feature deleted file mode 100644 index cb1da802d..000000000 --- a/tests/features/drush.feature +++ /dev/null @@ -1,14 +0,0 @@ -Feature: Running Drush Commands on a Drupal Site - In order to interact with Drupal without configuring Pantheon site aliases - As a Terminus user - I want the ability to run arbitrary drush commands in terminus - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named: [[test_site_name]] - - @vcr drush.yml - Scenario: Running a simple drush command - When I run: terminus drush [[test_site_name]].dev -- version - Then I should get: "[[executable]] is in test mode" - And I should get: "drush version" diff --git a/tests/features/env-clear-cache.feature b/tests/features/env-clear-cache.feature deleted file mode 100644 index 15f8ed4d5..000000000 --- a/tests/features/env-clear-cache.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Clearing a site's cache - In order to keep my site running smoothly and see new changes - As a user - I need to be able to clear my site's cache. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-cache-clear.yml - Scenario: Clear the dev environment's cache - When I run "[[executable]] env:clear-cache [[test_site_name]].dev" - Then I should get: "Caches cleared on [[test_site_name]].dev." diff --git a/tests/features/env-clone.feature b/tests/features/env-clone.feature deleted file mode 100644 index 198a53d31..000000000 --- a/tests/features/env-clone.feature +++ /dev/null @@ -1,52 +0,0 @@ -Feature: Cloning site content - In order to duplicate a site - As a user - I need to be able to duplicate a site. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-clone.yml - Scenario: Clone an environment - When I run "[[executable]] env:clone-content [[test_site_name]].test dev --yes" - Then I should get: - """ - Cloning files from "test" to "dev" - """ - Then I should get: - """ - Cloning database from "test" to "dev" - """ - - @vcr env-clone.yml - Scenario: Clone an environment's files only - When I run "[[executable]] env:clone-content [[test_site_name]].test dev --files-only --yes" - Then I should get: - """ - Cloning files from "test" to "dev" - """ - - @vcr env-clone.yml - Scenario: Clone an environment's database only - When I run "[[executable]] env:clone-content [[test_site_name]].test dev --db-only --yes" - Then I should get: - """ - Cloning database from "test" to "dev" - """ - - @vcr env-clone-from-uninitialized.yml - Scenario: Attempting to clone from an uninitialized environment - When I run "[[executable]] env:clone-content [[test_site_name]].test dev --db-only --yes" - Then I should get: - """ - [[test_site_name]]'s test environment cannot be cloned from because it has not been initialized. Please run `env:deploy [[test_site_name]].test` to initialize it. - """ - - @vcr env-clone-to-uninitialized.yml - Scenario: Attempting to clone to an uninitialized environment - When I run "[[executable]] env:clone-content [[test_site_name]].test live --db-only --yes" - Then I should get: - """ - [[test_site_name]]'s live environment cannot be cloned into because it has not been initialized. Please run `env:deploy [[test_site_name]].live` to initialize it. - """ diff --git a/tests/features/env-code-log.feature b/tests/features/env-code-log.feature deleted file mode 100644 index edb051821..000000000 --- a/tests/features/env-code-log.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Listing commits on an environment - In order to maintain my site - As a user - In need to be able to list the commits on a branch - - Background: I am authenticated and have a site called [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-code-log.yml - Scenario: Listing the commit log of a site - When I run "[[executable]] env:code-log [[test_site_name]].dev" - Then I should get: "Initial Commit" diff --git a/tests/features/env-commit.feature b/tests/features/env-commit.feature deleted file mode 100644 index 88f44c1a6..000000000 --- a/tests/features/env-commit.feature +++ /dev/null @@ -1,24 +0,0 @@ -Feature: Committing code to an environment's branch - In order to maintain my git repository for my site - As a user - In need to be able to commit changes made to the site on the server - - Background: I am authenticated and have a site called [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-commit.yml - Scenario: Committing a change - When I run "[[executable]] env:commit [[test_site_name]].dev --message='Behat test commit'" - Then I should get: "There is no code to commit." - When I run "[[executable]] env:code-log [[test_site_name]].dev" - Then I should get: "--------------------- ---------- ----------------- ------------------------------------------ -------------------" - And I should get: "Timestamp Author Labels Commit ID Message" - And I should get: "--------------------- ---------- ----------------- ------------------------------------------ -------------------" - And I should get: "2016-08-18T23:31:15 Dev User dev a6a94cff8dbc3f15c93b2d3c6777aa334a476927 Behat test commit" - And I should get: "2016-08-17T00:46:03 Dev User dev 41710101cf34dd3980c7534a2a1678208303fe19 Removed README.md" - And I should get: - """ - 2016-08-16T22:09:25 Root test, live, dev 1fdf194d3d7a0c930a4f118e1398412765320328 "Initial Commit" - """ - And I should get: "--------------------- ---------- ----------------- ------------------------------------------ -------------------" diff --git a/tests/features/env-deploy.feature b/tests/features/env-deploy.feature deleted file mode 100644 index c6043ae2d..000000000 --- a/tests/features/env-deploy.feature +++ /dev/null @@ -1,45 +0,0 @@ -Feature: Site Deployment - In order to publish a site to the internet - As a user - I need to be able to deploy sites on Pantheon. - - Background: I am authenticated and have a site named [[test_site_name]] on which I deploy - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-deploy.yml - Scenario: Deploying dev to test while syncing content from the live environment - When I run "[[executable]] env:deploy [[test_site_name]].test --note='Deploy test' --sync-content" - Then I should get: - """ - Deploying code to "test", and cloning files from "live", and cloning database from "live" - """ - - @vcr env-deploy-uninitialized-source.yml - Scenario: Attempting to deploy dev to test while syncing content from an uninitialized live environment - When I run "[[executable]] env:deploy [[test_site_name]].test --note='Deploy test' --sync-content" - Then I should get: - """ - [[test_site_name]]'s live environment cannot be cloned because it has not been initialized. - """ - - @vcr env-deploy-no-changes.yml - Scenario: Failing to deploy dev to test because there are no changes to deploy - When I run "[[executable]] env:deploy [[test_site_name]].test --note='Deploy test' --sync-content" - Then I should get: "There is nothing to deploy." - - @vcr env-deploy-init-with-message.yml - Scenario: Initializing test when it has not been previously initialized - When I run "[[executable]] env:deploy [[test_site_name]].test --note='Shes the one named Sailor Moon!' --sync-content" - Then I should get: - """ - Deploying code to "test", and cloning files from "live", and cloning database from "live" - """ - - @vcr env-deploy-init.yml - Scenario: Initializing test when it has not been previously initialized and no note is provided - When I run "[[executable]] env:deploy [[test_site_name]].test" - Then I should get: - """ - Deploying code to "test", and cloning files from "live", and cloning database from "live" - """ diff --git a/tests/features/env-diffstat.feature b/tests/features/env-diffstat.feature deleted file mode 100644 index 35fc2ae0a..000000000 --- a/tests/features/env-diffstat.feature +++ /dev/null @@ -1,19 +0,0 @@ -Feature: Diffing environments - In order to maintain my git repository for my site - As a user - In need to be able to check for changes in the code on branches - - Background: I am authenticated and have a site called [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-diffstat.yml - Scenario: Looking for changes on the server - When I run "[[executable]] env:diffstat [[test_site_name]].dev" - Then I should get: "Deletions" - And I should not get: "No changes on the server." - - @vcr env-diffstat-empty.yml - Scenario: Looking for changes on the server when there are none - When I run "[[executable]] env:diffstat [[test_site_name]].dev" - Then I should get: "No changes on server." diff --git a/tests/features/env-info.feature b/tests/features/env-info.feature deleted file mode 100644 index ba009019d..000000000 --- a/tests/features/env-info.feature +++ /dev/null @@ -1,58 +0,0 @@ -Feature: Displaying environmental information - In order to access and work with the Pantheon platform - As a user - I need to be able to check information on my site's environments. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-info.yml - Scenario: Checking environmental information - When I run "[[executable]] env:info [[test_site_name]].dev" - Then I should see a table with rows like: - """ - ID - Created - Domain - Locked - Initialized - Connection Mode - PHP Version - """ - - @vcr env-info.yml - Scenario: Checking environmental information - When I set the environment variable "TERMINUS_SITE" to "[[test_site_name]]" - And I set the environment variable "TERMINUS_ENV" to "dev" - And I run "[[executable]] env:info" - Then I should see a table with rows like: - """ - ID - Created - Domain - Locked - Initialized - Connection Mode - PHP Version - """ - - @vcr env-info.yml - Scenario: Checking an information field of an environment - When I run "[[executable]] env:info [[test_site_name]].dev --field=connection_mode" - Then I should get one of the following: "git, sftp" - - @vcr env-info.yml - Scenario: Checking an information field of an environment - When I set the environment variable "TERMINUS_SITE" to "[[test_site_name]]" - And I set the environment variable "TERMINUS_ENV" to "dev" - And I run "[[executable]] env:info --field=connection_mode" - Then I should get one of the following: "git, sftp" - - @vcr env-info.yml - Scenario: Failing to check an invalid field - When I run "[[executable]] env:info [[test_site_name]].dev --field=invalid" - Then I should get: - """ - The requested field, 'invalid', is not defined. - """ diff --git a/tests/features/env-list.feature b/tests/features/env-list.feature deleted file mode 100644 index 36746e52d..000000000 --- a/tests/features/env-list.feature +++ /dev/null @@ -1,35 +0,0 @@ -Feature: Listing a site's environments - In order to administer my site - As a user - I need to be able to list all of its 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 env-list.yml - Scenario: Listing all environments belonging to a site - When I run "[[executable]] env:list [[test_site_name]]" - Then I should see a table with rows like: - """ - ID - Created - Domain - Connection Mode - Locked - Initialized - """ - - @vcr env-list-empty.yml - Scenario: Listing all environments belonging to a site when none are returned - When I run "[[executable]] env:list [[test_site_name]]" - Then I should get the warning: "You have no environments." - And I should see a table with rows like: - """ - ID - Created - Domain - Connection Mode - Locked - Initialized - """ diff --git a/tests/features/env-view.feature b/tests/features/env-view.feature deleted file mode 100644 index f6ad1fdf5..000000000 --- a/tests/features/env-view.feature +++ /dev/null @@ -1,17 +0,0 @@ -Feature: Getting an environment's URL - In order to view my site - As a user - I need to be able to find the URL of my site's environments. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-view.yml - Scenario: Getting the URL for an environment - When I run "[[executable]] env:view [[test_site_name]].dev --print" - Then I should get: - """ - https://dev-[[test_site_name]].onebox.pantheonsite.io/ - """ - diff --git a/tests/features/env-wake.feature b/tests/features/env-wake.feature deleted file mode 100644 index 8da1ad8bb..000000000 --- a/tests/features/env-wake.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Waking a site - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-wake.yml - Scenario: Waking a site - When I run "[[executable]] env:wake [[test_site_name]].dev" - Then I should get: - """ - OK >> dev-[[test_site_name]].[[php_site_domain]] responded - """ diff --git a/tests/features/env-wipe.feature b/tests/features/env-wipe.feature deleted file mode 100644 index 6f79dc7ec..000000000 --- a/tests/features/env-wipe.feature +++ /dev/null @@ -1,20 +0,0 @@ -Feature: Wipe the content in a site's environment - In order to remove all site content - As a user - I need to be able to wipe a site container of its contents. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr env-wipe.yml - Scenario: Wipe Environment - When I run "[[executable]] env:wipe [[test_site_name]].dev --yes" - Then I should get: - """ - Wiping the "dev" environment of "[[test_site_name]]" - """ - And I should get: - """ - Wiped files and database in "dev" - """ diff --git a/tests/features/https.feature b/tests/features/https.feature deleted file mode 100644 index 263d81a34..000000000 --- a/tests/features/https.feature +++ /dev/null @@ -1,39 +0,0 @@ -Feature: Set HTTPS Certificate - In order to enable HTTPS to secure my website - As a user - I need to be able to be able update my environment's HTTPS certificate - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr https-add.yml - Scenario: Set an HTTPS Certificate - When I run "[[executable]] https:set [[test_site_name]].live fake fake" - Then I should get: - """ - Converged loadbalancer - """ - - @vcr https-remove.yml - Scenario: Delete an HTTPS Certificate - When I run "[[executable]] https:remove [[test_site_name]].dev" - Then I should get: "Disabled ssl for dev" - - @vcr https-remove-nocert.yml - Scenario: Delete a non-existent HTTPS Certificate - When I run "[[executable]] https:remove [[test_site_name]].dev" - Then I should get: "The dev environment does not have https enabled" - - @vcr https-info.yml - Scenario: Retrieve information on an environment's HTTPS setup - When I run "[[executable]] https:info [[test_site_name]].live" - Then I should get: "---------------------------------- ----------------- -------- ---------------- --------------" - And I should get: "Domain/ID Type Status Status Message Is Deletable" - And I should get: "---------------------------------- ----------------- -------- ---------------- --------------" - And I should get: "live-[[test_site_name]].pantheon.io legacy_platform OK Launched true" - And I should get: "www.[[test_site_name]].me custom OK Launched true" - And I should get: "[[test_site_name]].me custom OK Launched true" - And I should get: "live-[[test_site_name]].pantheonsite.io platform OK Launched false" - And I should get: "---------------------------------- ----------------- -------- ---------------- --------------" - diff --git a/tests/features/import-complete.feature b/tests/features/import-complete.feature deleted file mode 100644 index 6af4ffe1e..000000000 --- a/tests/features/import-complete.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Complete site migration - In order to view site information - As a user - I need to be able to list data related to it. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-import-complete.yml - Scenario: Complete a site migration - When I run "[[executable]] site:import:complete [[test_site_name]]" - Then I should get: "The import of [[test_site_name]] has been marked as complete." diff --git a/tests/features/import.feature b/tests/features/import.feature deleted file mode 100644 index 3c526717e..000000000 --- a/tests/features/import.feature +++ /dev/null @@ -1,23 +0,0 @@ -Feature: Import a a site and its content onto Pantheon - In order to move a site onto Pantheon - As a user - I need to be able to import its content. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr import.yml - Scenario: Importing a site archive onto Pantheon - When I run "[[executable]] import:site [[test_site_name]] https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz --yes" - Then I should get: "Imported site onto Pantheon" - - @vcr import-files.yml - Scenario: Import files into the site - When I run "[[executable]] import:files [[test_site_name]].dev https://s3.amazonaws.com/pantheondemofiles/files.tar.gz --yes" - And I should get: "Imported files to [[test_site_name]].dev." - - @vcr import-database.yml - Scenario: Import database into the site - When I run "[[executable]] import:database [[test_site_name]].dev https://s3.amazonaws.com/pantheondemofiles/database.tar.gz --yes" - Then I should get: "Imported database to [[test_site_name]].dev." diff --git a/tests/features/interactivity.feature b/tests/features/interactivity.feature deleted file mode 100644 index 48e7acea3..000000000 --- a/tests/features/interactivity.feature +++ /dev/null @@ -1,190 +0,0 @@ -Feature: Terminus Command-Line Interaction - In order to ease my use of the terminus command-line - As a terminus user - I want to be prompted and guided through command arguments - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - - ### Site Name Prompts - - Scenario: Responding to a prompt for the site argument using a number - When this step is implemented I will test: site selection interactivity by number - When I run: terminus site:info - Then I should get: "Please choose a site for this command:" - Then I should get: "1) [[test_site_name]]" - Then I should get: "Enter site name or number: " - When I enter: 1 - Then I should see a table with rows like: - """ - ID - Name - Label - Created - Framework - Organization - Service Level - Upstream - Holder Type - Holder ID - Owner - """ - - Scenario: Responding to a prompt for the site argument using a name - When this step is implemented I will test: site selection interactivity by name - When I run: terminus site:info - Then I should get: - """ - Please choose a site for this command: - 1) [[test_site_name]] - Enter site name or number: - """ - When I enter: [[test_site_name]] - Then I should see a table with rows like: - """ - ID - Name - Label - Created - Framework - Organization - Service Level - Upstream - Holder Type - Holder ID - Owner - """ - - - ### Environment Name Prompts - - Scenario: Responding to a prompt for the environment argument using a number - When this step is implemented I will test: environment selection interactivity by number - When I run: terminus env:info [[test_site_name]] - Then I should get: - """ - Please choose an environment for this command: - 1) dev - 2) test - 3) live - 4) my-multidev - Enter environment name or number: - """ - When I enter: 1 - Then I should see a table with rows like: - """ - ID - Created - Domain - Locked - Initialized - Connection Mode - """ - - Scenario: Responding to a prompt for the environment argument using a name - When this step is implemented I will test: environment selection interactivity by name - When I run: terminus env:info [[test_site_name]] - Then I should get: - """ - Please choose an environment for this command: - 1) dev - 2) test - 3) live - 4) my-multidev - Enter environment name or number: - """ - When I enter: dev - Then I should see a table with rows like: - """ - ID - Created - Domain - Locked - Initialized - Connection Mode - """ - - - ### Organization Name Prompts - - Scenario: Responding to a prompt for the organization argument using a number - When this step is implemented I will test: organization selection interactivity by number - When I run: terminus org:site:list - Then I should get: - """ - Please choose an organization for this command: - 1) Organization Name - Enter organization name or number: - """ - When I enter: 1 - Then I should see a table with the headers: Name, ID, Service Level, Framework, Owner, Created, Tags - - Scenario: Responding to a prompt for the organization argument using a name - When this step is implemented I will test: organization selection interactivity by name - When I run: terminus org:site:list - Then I should get: - """ - Please choose an organization for this command: - 1) [[organization_name]] - Enter organization name or number: - """ - When I enter: [[organization_name]] - Then I should see a table with the headers: Name, ID, Service Level, Framework, Owner, Created, Tags - - - ### Role Name Prompts - - Scenario: Responding to a prompt for the role argument using a number - When this step is implemented I will test: role selection interactivity by number - When I run: terminus site:team:role [[test_site_name]] [[username]] - Then I should get: - """ - Please choose a role for this command: - 1) Team Member - 2) Developer - Enter role name or number: - """ - When I enter: 1 - Then I should get: "Changed a user role" - - Scenario: Responding to a prompt for the role argument using a name - When this step is implemented I will test: role selection interactivity by name - When I run: terminus site:team:role [[test_site_name]] [[username]] - Then I should get: - """ - Please choose a role for this command: - 1) Team Member - 2) Developer - Enter role name or number: - """ - When I enter: Developer - Then I should get: "Changed a user role" - - - ### Machine Token Prompts - - Scenario: Responding to a prompt for the machine-token argument using a number - When this step is implemented I will test: machine-token selection interactivity by number - When I run: terminus machine-token:delete - Then I should get: - """ - Please choose a machine-token for this command: - 1) [[machine_token_device]] - Enter machine-token name or number: - """ - When I enter: 1 - Then I should get: "Deleted [[machine_token_device]]!" - - Scenario: Responding to a prompt for the machine-token argument using a name - When this step is implemented I will test: machine-token selection interactivity by name - When I run: terminus machine-token:delete - Then I should get: - """ - Please choose a machine-token for this command: - 1) [[machine_token_device]] - Enter machine-token name or number: - """ - When I enter: token-name - Then I should get: "Deleted [[machine_token_device]]!" diff --git a/tests/features/lock.feature b/tests/features/lock.feature deleted file mode 100644 index 654c04869..000000000 --- a/tests/features/lock.feature +++ /dev/null @@ -1,25 +0,0 @@ -Feature: Locking and unlocking a site - In order to quickly take down my site in an emergency - As a user - I need to be able to lock and unlock the site. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr lock-add-remove.yml - Scenario: Locking and unlocking an environment - When I run "[[executable]] lock:enable [[test_site_name]].dev pantheon password" - Then I should get: "[[test_site_name]].dev has been locked." - - When I run "[[executable]] lock:disable [[test_site_name]].dev" - Then I should get: "[[test_site_name]].dev has been unlocked." - - @vcr lock-info.yml - Scenario: Get lock info for an environment - When I run "[[executable]] lock:info [[test_site_name]].dev" - Then I should get: "---------- ----------" - And I should get: "Locked? true" - And I should get: "Username pantheon" - And I should get: "Password password" - And I should get: "---------- ----------" diff --git a/tests/features/machine-token.feature b/tests/features/machine-token.feature deleted file mode 100644 index 1af634ef0..000000000 --- a/tests/features/machine-token.feature +++ /dev/null @@ -1,33 +0,0 @@ -Feature: Machine tokens command - In order to manage my devices - As a user - I need to be able to view and delete my machine tokens. - - Background: I am logged in - Given I am authenticated - - @vcr machine-token-list.yml - Scenario: List the machine tokens - When I run "[[executable]] machine-token:list" - Then I should get: - """ - [[machine_token_id]] - """ - - @vcr machine-token-list-empty.yml - Scenario: Fail to list the machine tokens - When I run "[[executable]] machine-token:list" - Then I should get the warning: - """ - You have no machine tokens. - """ - - @vcr machine-token-delete.yml - @vcr machine-token-delete.yml - Scenario: Delete machine token - When I run "[[executable]] machine-token:delete [[machine_token_id]] --yes" - Then I should get: - """ - Deleted [[machine_token_device]]! - """ - diff --git a/tests/features/metrics.feature b/tests/features/metrics.feature deleted file mode 100644 index c60c2566d..000000000 --- a/tests/features/metrics.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Checking metrics for an environment - In order to determine how much traffic is being sent to my site - As a user - In need to be able to check the metrics logs - - Background: I am authenticated and have a site called [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr metrics.yml - Scenario: Checking aggregated metrics - When I run "[[executable]] env:metrics [[test_site_name]] --datapoints=2" - Then I should get: "Period Visits Pages Served" - And I should get: "2018-04-10 7,357 14,606" - And I should get: "2018-04-11 5,569 10,981" - - @vcr metrics.yml - Scenario: Checking metrics for live env - When I run "[[executable]] env:metrics [[test_site_name]].live --datapoints=2" - Then I should get: "Period Visits Pages Served" - And I should get: "2018-04-10 7,353 14,431" - And I should get: "2018-04-11 5,565 10,845" diff --git a/tests/features/multidev-create.feature b/tests/features/multidev-create.feature deleted file mode 100644 index c225bb2f6..000000000 --- a/tests/features/multidev-create.feature +++ /dev/null @@ -1,32 +0,0 @@ -Feature: Working with multidev environments - In order to work collaboratively on Pantheon - As a user - I need to be able to create, remove, and alter multidev 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 multidev-create.yml - Scenario: Create a multidev environment - When I run "[[executable]] multidev:create [[test_site_name]].dev multidev" - Then I should get: - """ - Creating Multidev environment "multidev" - """ - - @vcr multidev-create-no-db.yml - Scenario: Create a multidev environment - When I run "[[executable]] multidev:create [[test_site_name]].dev multidev --no-db" - Then I should get: - """ - Creating Multidev environment "multidev" - """ - - @vcr multidev-create-no-files.yml - Scenario: Create a multidev environment - When I run "[[executable]] multidev:create [[test_site_name]].dev multidev --no-files" - Then I should get: - """ - Creating Multidev environment "multidev" - """ diff --git a/tests/features/multidev-delete.feature b/tests/features/multidev-delete.feature deleted file mode 100644 index 074c2c99d..000000000 --- a/tests/features/multidev-delete.feature +++ /dev/null @@ -1,25 +0,0 @@ -Feature: Deleting a site's multidev environments - In order to work collaboratively - As a user - I need to be able to remove multidev 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 multidev-delete.yml - Scenario: Deleting a multidev environment - When I run "[[executable]] multidev:delete [[test_site_name]].multidev --yes" - Then I should get: - """ - Deleted the multidev environment multidev. - """ - - @vcr multidev-delete.yml - Scenario: Failing to delete a multidev environment when the specified environment does not exist - When I run "[[executable]] multidev:delete [[test_site_name]].invalid --yes" - Then I should get: - """ - Could not find an environment identified by invalid. - """ - diff --git a/tests/features/multidev-list.feature b/tests/features/multidev-list.feature deleted file mode 100644 index 8bca58fb6..000000000 --- a/tests/features/multidev-list.feature +++ /dev/null @@ -1,23 +0,0 @@ -Feature: Listing a site's environments - In order to administer my site - As a user - I need to be able to list all of its 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 env-list.yml - Scenario: Failing to list multidevs when there aren't any - When I run "[[executable]] multidev:list [[test_site_name]] --format=json" - Then I should get: "You have no multidev environments" - And I should get: "[]" - - @vcr site-info.yml - Scenario: Listing all multidev environments belonging to a site - When I run "[[executable]] multidev:list [[test_site_name]]" - Then I should get: "---------- --------------------- -------------------------------------- --------------- --------- --------------" - And I should get: "Name Created Domain OnServer Dev? Locked? Initialized?" - And I should get: "---------- --------------------- -------------------------------------- --------------- --------- --------------" - And I should get: "multidev 2016-08-16 22:09:01 multidev-[[test_site_name]].pantheonsite.io true false true" - And I should get: "---------- --------------------- -------------------------------------- --------------- --------- --------------" diff --git a/tests/features/multidev-merge-from-dev.feature b/tests/features/multidev-merge-from-dev.feature deleted file mode 100644 index 4f60902c2..000000000 --- a/tests/features/multidev-merge-from-dev.feature +++ /dev/null @@ -1,16 +0,0 @@ -Feature: Merging into an environment from dev - In order to work collaboratively - As a user - I need to be able to merge from the dev environment. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr multidev-merge-from-dev.yml - Scenario: Merge the dev environment into a multidev environment - When I run "[[executable]] multidev:merge-from-dev [[test_site_name]].multidev" - Then I should get: - """ - Merged the dev environment into multidev. - """ diff --git a/tests/features/multidev-merge-to-dev.feature b/tests/features/multidev-merge-to-dev.feature deleted file mode 100644 index 3f2a835a1..000000000 --- a/tests/features/multidev-merge-to-dev.feature +++ /dev/null @@ -1,16 +0,0 @@ -Feature: Merging into dev from an environment - In order to work collaboratively - As a user - I need to be able to merge into the dev environment. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr multidev-merge-to-dev.yml - Scenario: Merge a multidev to dev environment - When I run "[[executable]] multidev:merge-to-dev [[test_site_name]].multidev" - Then I should get: - """ - Merged the multidev environment into dev - """ diff --git a/tests/features/new-relic.feature b/tests/features/new-relic.feature deleted file mode 100644 index 96c360fc2..000000000 --- a/tests/features/new-relic.feature +++ /dev/null @@ -1,28 +0,0 @@ -Feature: New Relic - In order to monitor my site's performance - As a user - I need to be able to view my New Relic data - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr new-relic-info.yml - Scenario: Accessing New Relic data - When I run "[[executable]] new-relic:info [[test_site_name]]" - Then I should get: "--------------- --" - And I should get: "Name" - And I should get: "Status" - And I should get: "Subscribed On" - And I should get: "State" - And I should get: "--------------- --" - - @vcr new-relic-enable.yml - Scenario: Enabling New Relic data - When I run "[[executable]] new-relic:enable [[test_site_name]]" - Then I should get: "Enable New Relic" - - @vcr new-relic-disable.yml - Scenario: Disabling New Relic data - When I run "[[executable]] new-relic:disable [[test_site_name]]" - Then I should get: "Disabling New Relic" diff --git a/tests/features/org-people.feature b/tests/features/org-people.feature deleted file mode 100644 index b87f38738..000000000 --- a/tests/features/org-people.feature +++ /dev/null @@ -1,50 +0,0 @@ -Feature: Organizational users - In order to coordinate users within organizations - As an organizational user - I need to be able to list organizational user memberships. - - Background: I am authenticated - Given I am authenticated - - @vcr org-people-list.yml - Scenario: List an organization's members - When I run "[[executable]] org:people:list '[[organization_name]]'" - Then I should get: "-------------------------------------- ----------------------- -----------" - And I should get: "ID Email Role" - And I should get: "-------------------------------------- ----------------------- -----------" - And I should get: "a7926bb1-9490-46eb-b580-2e80cdf9fd11 [[other_user]] developer" - And I should get: "11111111-1111-1111-1111-111111111111 [[username]] admin" - And I should get: "-------------------------------------- ----------------------- -----------" - - @vcr org-people-site-list-empty.yml - Scenario: List an organization's members - When I run "[[executable]] org:people:list '[[organization_name]]'" - Then I should get the warning: "[[organization_name]] has no members." - And I should get: "---- ------- ------" - And I should get: "ID Email Role" - And I should get: "---- ------- ------" - - @vcr org-people-add.yml - Scenario: Add a new member to an organization - When I run "[[executable]] org:people:add '[[organization_name]]' [[other_user]] team_member" - Then I should get: "[[other_user]] has been added to the [[organization_name]] organization as a(n) team_member." - - @vcr org-people-add.yml - Scenario: Failing to add an org member role because the given role is invalid - When I run "[[executable]] org:people:add '[[organization_name]]' [[other_user]] invalid" - Then I should get: "invalid is not a valid role selection. Please enter admin, developer, team_member, or unprivileged." - - @vcr org-people-remove.yml - Scenario: Removing a member from an organization - When I run "[[executable]] org:people:remove '[[organization_name]]' [[other_user]]" - Then I should get: "Dev User has been removed from the [[organization_name]] organization." - - @vcr org-people-role.yml - Scenario: Changing a org member's role - When I run "[[executable]] org:people:role '[[organization_name]]' [[other_user]] developer" - Then I should get: "Dev User's role has been changed to developer in the [[organization_name]] organization." - - @vcr org-people-role.yml - Scenario: Failing to change a org member's role because the given role is invalid - When I run "[[executable]] org:people:role '[[organization_name]]' [[other_user]] invalid" - Then I should get: "invalid is not a valid role selection. Please enter admin, developer, team_member, or unprivileged." diff --git a/tests/features/org-site.feature b/tests/features/org-site.feature deleted file mode 100644 index 005966983..000000000 --- a/tests/features/org-site.feature +++ /dev/null @@ -1,52 +0,0 @@ -Feature: Organization sites - In order to associate sites with organizations - As an organizational user - I need to be able to list and edit organizational site memberships. - - Background: I am authenticated - Given I am authenticated - - @vcr org-site-list.yml - Scenario: List an organization's sites - Given a site named "[[test_site_name]]" belonging to "[[organization_name]]" - When I run "[[executable]] org:site:list '[[organization_name]]'" - Then I should see a table with rows like: - """ - Name - ID - Created - Plan - Framework - Owner - Created - Tags - """ - - @vcr org-site-list.yml - Scenario: List an organization's sites, filtered by tag - Given a site named "[[test_site_name]]" belonging to "[[organization_name]]" - When I run "[[executable]] org:site:list '[[organization_name]]' --tag=tag" - And I should see a table with rows like: - """ - Name - ID - Created - Plan - Framework - Owner - Created - Tags - """ - - @vcr org-site-list-empty.yml - Scenario: List an organization's sites when it hasn't any - Given a site named "[[test_site_name]]" belonging to "[[organization_name]]" - When I run "[[executable]] org:site:list '[[organization_name]]'" - Then I should get the warning: "This organization has no sites." - - @vcr org-site-list.yml - @vcr organization-site-remove.yml - Scenario: Remove a site from an organization - Given a site named "[[test_site_name]]" belonging to "[[organization_name]]" - When I run "[[executable]] org:site:remove '[[organization_name]]' [[test_site_name]]" - Then I should get: "[[test_site_name]] has been removed from the [[organization_name]] organization." diff --git a/tests/features/org-upstream.feature b/tests/features/org-upstream.feature deleted file mode 100644 index c2ed3d92c..000000000 --- a/tests/features/org-upstream.feature +++ /dev/null @@ -1,25 +0,0 @@ -Feature: Listing upstreams - In order to decide on which upstream I can use - As a user - I need to be able to list available organization upstreams. - - Background: I am logged in - Given I am authenticated - - @vcr org-upstream-list.yml - Scenario: List my organization's core and custom upstreams - When I run "[[executable]] org:upstream:list the-upstreamers" - Then I should get: "-------------------------------------- ------------------------ ------------------------ -------- -----------" - And I should get: "ID Name Machine Name Type Framework" - And I should get: "-------------------------------------- ------------------------ ------------------------ -------- -----------" - And I should get: "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68 Drupal8 PHP drupal8-php7 custom drupal8" - And I should get: "1f3b2569-b4f6-43ca-a8ae-11c38d90778e Inaccessible Upstream inaccessible-upstream custom wordpress" - And I should get: "595003f1-e82e-4af8-ac18-65d09da2f6c5 Mindgrub Test mindgrub-test custom drupal" - And I should get: "66665092-2d26-47c8-b7c3-a920a37fb805 My Demo Upstream my-demo-upstream custom drupal8" - And I should get: "745bfede-0557-42ea-a115-246e3b60e8e0 My Upstream for Demo my-upstream-for-demo custom drupal8" - And I should get: "ba06828d-9507-4217-b7ed-7acb7f9812cf Pivate Github Upstream pivate-github-upstream custom wordpress" - And I should get: "c9f1311f-4cae-41ca-8276-cca230c25f37 Protected Upstream protected-upstream custom drupal" - And I should get: "3a821c48-63b1-4e29-b0f7-8d6a5cafb953 Pubsub Test 2 pubsub-test-2 custom drupal8" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8" - And I should get: "-------------------------------------- ------------------------ ------------------------ -------- -----------" diff --git a/tests/features/org.feature b/tests/features/org.feature deleted file mode 100644 index 6aeb03b6b..000000000 --- a/tests/features/org.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Listing one's organizational memberships - In order to manage my organizational memberships - As an organizational user - I need to be able to list my organizational memberships. - - Background: I am authenticated - Given I am authenticated - - @vcr org-list.yml - Scenario: List a user's organizational memberships - When I run "[[executable]] org:list" - Then I should get: "-------------------------------------- --------------- -------------------" - And I should get: "ID Name Label" - And I should get: "-------------------------------------- --------------- -------------------" - And I should get: "c44e5de1-77b5-4151-b89f-9f548c5d909e anotherorg AnotherOrg" - And I should get: "11111111-1111-1111-1111-111111111111 enterpriseorg Organization Name" - And I should get: "-------------------------------------- --------------- -------------------" - - @vcr org-list-empty.yml - Scenario: List a user's organizational memberships when there aren't any - When I run "[[executable]] org:list" - Then I should get the warning: "You are not a member of any organizations." diff --git a/tests/features/owner.feature b/tests/features/owner.feature deleted file mode 100644 index 3e00bf801..000000000 --- a/tests/features/owner.feature +++ /dev/null @@ -1,23 +0,0 @@ -Feature: Set a site's owner - In order to ensure that my site is being managed by the appropriate people - As a user - I need to be able to change the owner of my site. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr owner-set.yml - Scenario: Changing the site's owner to another team member - Given "[[other_user]]" is a member of the team on "[[test_site_name]]" - When I run "[[executable]] owner:set [[test_site_name]] [[other_user]]" - Then I should get: "Promoted [[other_user]] to owner of [[test_site_name]]" - - @vcr owner-set-solo.yml - Scenario: Failing to change the site owner when there is only one team member - Given "[[other_user]]" is not a member of the team on "[[test_site_name]]" - When I run "[[executable]] owner:set [[test_site_name]] [[other_user]]" - Then I should get: - """ - The new owner must be added with "[[executable]] site:team:add" before promoting. - """ diff --git a/tests/features/payment-methods.feature b/tests/features/payment-methods.feature deleted file mode 100644 index 506693612..000000000 --- a/tests/features/payment-methods.feature +++ /dev/null @@ -1,58 +0,0 @@ -Feature: Payment method command - In order to pay for service - As a user - I need to be able to view and use my payment methods. - - Background: I am logged in - Given I am authenticated - - @vcr payment-method-list.yml - Scenario: Listing a user's payment methods and filtering - When I run: - """ - terminus payment-method:list --filter="label=[[payment_method_label]]" - """ - Then I should get: "------------- --------------------------------------" - And I should get: "Label ID" - And I should get: "------------- --------------------------------------" - And I should get: "[[payment_method_label]] 8558e04f-3674-481e-b448-bccff73cb430" - And I should get: "------------- --------------------------------------" - - @vcr payment-method-list.yml - Scenario: Listing a user's payment methods - When I run "[[executable]] payment-method:list" - Then I should get: "------------- --------------------------------------" - And I should get: "Label ID" - And I should get: "------------- --------------------------------------" - And I should get: "[[payment_method_label]] 8558e04f-3674-481e-b448-bccff73cb430" - And I should get: "------------- --------------------------------------" - - @vcr payment-method-list.yml - Scenario: Listing a user's payment methods and filtering when they don't have any matches - When I run: - """ - terminus payment-method:list --filter="label=invalid" - """ - Then I should get: "------- ----" - And I should get: "Label ID" - And I should get: "------- ----" - - @vcr payment-method-site-list-empty.yml - Scenario: Listing a user's payment methods when they don't have any - When I run "[[executable]] payment-method:list" - Then I should get the warning: "There are no payment methods attached to this account." - And I should get: "------- ----" - And I should get: "Label ID" - And I should get: "------- ----" - - @vcr payment-method-add.yml - Scenario: Adding payment methods - Given a site named "[[test_site_name]]" - When I run "[[executable]] payment-method:add [[test_site_name]] '[[payment_method_label]]'" - Then I should get: "[[payment_method_label]] has been applied to the [[test_site_name]] site." - - @vcr payment-method-remove.yml - Scenario: Removing payment methods - Given a site named "[[test_site_name]]" - When I run "[[executable]] payment-method:remove [[test_site_name]]" - Then I should get: "The payment method for the [[test_site_name]] site has been removed." diff --git a/tests/features/plan-list.feature b/tests/features/plan-list.feature deleted file mode 100644 index 67e0c8e93..000000000 --- a/tests/features/plan-list.feature +++ /dev/null @@ -1,32 +0,0 @@ -Feature: Listing available plans - In order to decide which plan I can use - As a user - I need to be able to list available site plans. - - Background: I am logged in - Given I am authenticated - - @vcr plan-list.yml - Scenario: List plans available for my site - When I run "[[executable]] plan:list [[test_site_name]]" - Then I should see a table with rows like: - """ - SKU - Name - Billing Cycle - Price - Monthly Price - """ - - @vcr plan-list-empty.yml - Scenario: List plans available for my site when none are available - When I run "[[executable]] plan:list [[test_site_name]]" - Then I should see a table with rows like: - """ - SKU - Name - Billing Cycle - Price - Monthly Price - """ - And I should get the warning: "You have no plans." diff --git a/tests/features/plan-set.feature b/tests/features/plan-set.feature deleted file mode 100644 index 2c28aa426..000000000 --- a/tests/features/plan-set.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Set a site's service level - In order to ensure the level of service my site requires - As a user - I need to be able to change the plan of my site. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr plan-set.yml - Scenario: Changing the plan of a site - When I run "[[executable]] plan:set [[test_site_name]] plan-free-preferred-monthly-1" - Then I should get: - """ - Setting plan of "[[test_site_name]]" to "plan-free-preferred-monthly-1". - """ - And I should get: "Change site plan" - - @vcr plan-set-fail.yml - Scenario: Attempting to change the plan to an ineligible plan - When I run "[[executable]] plan:set [[test_site_name]] invalid" - Then I should get: "Could not find a plan identified by invalid." diff --git a/tests/features/plugins.feature b/tests/features/plugins.feature deleted file mode 100644 index f41b0ce70..000000000 --- a/tests/features/plugins.feature +++ /dev/null @@ -1,72 +0,0 @@ -Feature: Plugin Commands - In order to extend Terminus - As a user - I need to be able to add commands to Terminus using the plugin mechanism. - - Scenario: Running a plugin that has not been installed - When I run "[[executable]] hello" - Then I should get: - """ - Command "hello" is not defined. - """ - - Scenario: Running a simple plugin command that does not need autoloading - When I am using "no-namespace" plugins - And I run "[[executable]] global:hello" - Then I should get: - """ - [notice] Hello, World! - """ - - Scenario: Running a simple plugin command that does not need autoloading - When I am using "no-namespace" plugins - And I run "[[executable]] with-global-base-class:hello" - Then I should get: - """ - [notice] Hello, everyone! - """ - - Scenario: Running a simple plugin command that uses autoloading but does not have dependencies - When I am using "with-namespace" plugins - And I run "[[executable]] hello" - Then I should get: - """ - [notice] Hello, World! - """ - - Scenario: Running a simple plugin command that needs autoloading for its base class - When I am using "with-namespace" plugins - And I run "[[executable]] with-base-class:hello" - Then I should get: - """ - [notice] Hello, everyone! - """ - - Scenario: Running a simple plugin command that has trivial dependencies - When I am using "with-dependencies" plugins - And I run "[[executable]] dependencies:hello" - Then I should get: - """ - [notice] LengthUnits class NOT found in pre-init. - [notice] LengthUnits class found in post-init. - [notice] LengthUnits class found in main command implementation. - [notice] Hello, yd! - """ - - Scenario: Running a simple plugin command that needs autoloading for its base class - When I am using "outdated" plugins - And I run "[[executable]] global:hello" - Then I should get: - """ - [warning] Could not load plugin pantheon-systems/terminus-plugin-example because it is not compatible with this version of Terminus. - """ - - Scenario: Running a simple plugin command that uses autoloading to include a hook which adds an option - When I am using "with-hooks" plugins - And I run "[[executable]] hello:again --new" - Then I should get: - """ - [notice] Ohai! - """ - And I should not see an error - diff --git a/tests/features/redis.feature b/tests/features/redis.feature deleted file mode 100644 index 8f605a672..000000000 --- a/tests/features/redis.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Using Redis - In order to enhance my site's speed and responsivity - As a business or an elite user - I need to be able to manipluate Redis via Terminus. - - Background: Given I am authenticated and have a site belonging to an organization - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr redis-enable.yml - Scenario: Enabling Redis - When I run "[[executable]] redis:enable [[test_site_name]]" - Then I should get: "Enabling cacheserver for site" - - @vcr redis-disable.yml - Scenario: Disabling Redis - When I run "[[executable]] redis:disable [[test_site_name]]" - Then I should get: "Disabling cacheserver for site" diff --git a/tests/features/self.feature b/tests/features/self.feature deleted file mode 100644 index 83bf30ba6..000000000 --- a/tests/features/self.feature +++ /dev/null @@ -1,26 +0,0 @@ -Feature: CLI Commands - In order to control Terminus - As a user - I need to be able to check and clear system files. - - Scenario: Displaying Terminus information - When I run "[[executable]] self:info" - Then I should get: - """ - Terminus version - """ - - @vcr self-env-cache-clear.yml - Scenario: Deleting the Terminus cache - When I run "[[executable]] self:clear-cache" - Then I should get: - """ - The local Terminus cache has been cleared. - """ - - Scenario: Dumping Terminus configuration - When I run "[[executable]] self:config:dump" - Then I should get: - """ - key: tokens_dir - """ diff --git a/tests/features/service-level.feature b/tests/features/service-level.feature deleted file mode 100644 index b32ee1ffe..000000000 --- a/tests/features/service-level.feature +++ /dev/null @@ -1,24 +0,0 @@ -Feature: Set a site's service level - In order to ensure the level of service my site requires - As a user - I need to be able to change the service level on my site. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr service-level-set.yml - Scenario: Changing the service level - When I run "[[executable]] service-level:set [[test_site_name]] pro" - Then I should get: - """ - Changing site plan to "pro" - """ - - @vcr service-level-set-fail.yml - Scenario: Changing service level without payment method - When I run "[[executable]] service-level:set [[test_site_name]] pro" - Then I should get: - """ - needs to be paid for before the service level can be changed - """ diff --git a/tests/features/site-create.feature b/tests/features/site-create.feature deleted file mode 100644 index 4507a01aa..000000000 --- a/tests/features/site-create.feature +++ /dev/null @@ -1,19 +0,0 @@ -Feature: Create a site - In order to use the Pantheon platform - As a user - I need to be able to create a site on it. - - Background: I am authenticated - Given I am authenticated - - @vcr site-create.yml - Scenario: Create Site - When I run "[[executable]] site:create [[test_site_name]] [[test_site_name]] e8fe8550-1ab9-4964-8838-2b9abdccf4bf" - Then I should get: "Creating a new site..." - And I should get: "Deploying CMS..." - And I should get: "Deployed CMS" - - @vcr site-create-duplicate.yml - Scenario: Create Site - When I run "[[executable]] site:create [[test_site_name]] [[test_site_name]] e8fe8550-1ab9-4964-8838-2b9abdccf4bf" - Then I should get: "The site name [[test_site_name]] is already taken." diff --git a/tests/features/site-delete.feature b/tests/features/site-delete.feature deleted file mode 100644 index b82cd9613..000000000 --- a/tests/features/site-delete.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Deleting a site - In order to keep my sites list maintained - As a user - I need to be able to delete sites. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-delete.yml - Scenario: Delete Site - When I run "[[executable]] site:delete [[test_site_name]] --yes" - Then I should get: "Deleted [[test_site_name]] from Pantheon" diff --git a/tests/features/site-info.feature b/tests/features/site-info.feature deleted file mode 100644 index e8199fa9a..000000000 --- a/tests/features/site-info.feature +++ /dev/null @@ -1,55 +0,0 @@ -Feature: View site information - In order to view site information - As a user - I need to be able to list data related to it. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-info.yml - Scenario: Site Info - When I run "[[executable]] site:info [[test_site_name]]" - Then I should see a table with rows like: - """ - ID - Name - Label - Created - Framework - Region - Organization - Plan - Upstream - Holder Type - Holder ID - Owner - Date Last Frozen - """ - - @vcr site-info.yml - Scenario: Site Info - When I set the environment variable "TERMINUS_SITE" to "[[test_site_name]]" - And I run "[[executable]] site:info" - Then I should see a table with rows like: - """ - ID - Name - Label - Created - Framework - Region - Organization - Plan - Upstream - Holder Type - Holder ID - Owner - Date Last Frozen - """ - - @vcr site-info-owner.yml - Scenario: Site info for a specific field - When I run "[[executable]] site:info [[test_site_name]] --field=id" - Then I should get: "11111111-1111-1111-1111-111111111111" - diff --git a/tests/features/site-list.feature b/tests/features/site-list.feature deleted file mode 100644 index 730686012..000000000 --- a/tests/features/site-list.feature +++ /dev/null @@ -1,147 +0,0 @@ -Feature: Listing sites - In order to administer my sites - As a user - I need to be able to list those sites. - - Background: I am authenticated - Given I am authenticated - - @vcr site-list-empty.yml - Scenario: Listing a user's sites when they haven't any - When I run "[[executable]] site:list --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should get the warning: "You have no sites." - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have no rows - And I should not get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress United States 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Listing a user's sites - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --owner=me --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have 1 row - And I should get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by name - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --name=[[test_site_name]] --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have 1 row - And I should get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by name - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --name=[[test_site_name]]" - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Region - Owner - Created - Memberships - """ - And that table should have 1 row - And I should get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress United States 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by name - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --upstream=e8fe8550-1ab9-4964-8838-2b9abdccf4bf" - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Region - Owner - Created - Memberships - """ - And that table should have 1 row - And I should get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress United States 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by name, excluding the test site - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --name=missing --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should get the warning: "You have no sites." - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have no rows - And I should not get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress United States 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by plan name and it's empty - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --plan=basic --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should get the warning: "You have no sites." - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have no rows - And I should not get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress United States 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" - - @vcr site-list.yml - Scenario: Filter sites list by plan name with results - Given a site named "[[test_site_name]]" - When I run "[[executable]] site:list --plan=sandbox --fields=name,id,plan_name,framework,owner,created,memberships,frozen" - Then I should see a table with rows like: - """ - Name - ID - Plan - Framework - Owner - Created - Memberships - """ - And that table should have 1 row - And I should get: "[[test_site_name]] 11111111-1111-1111-1111-111111111111 Sandbox wordpress 11111111-1111-1111-1111-111111111111 2016-08-16 22:09:01 11111111-1111-1111-1111-111111111111: Team false" diff --git a/tests/features/site-lookup.feature b/tests/features/site-lookup.feature deleted file mode 100644 index 873050e9a..000000000 --- a/tests/features/site-lookup.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Looking up a site - In order to know whether a site exists - As a user - I need to be able to detect if a site of a given name already exists - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-lookup.yml - Scenario: Site look-up - When I run "[[executable]] site:lookup [[test_site_name]]" - Then I should get: "11111111-1111-1111-1111-111111111111" - - @vcr site-lookup-dne.yml - Scenario: Site look-up fails because site DNE - When I run "[[executable]] site:lookup invalid" - Then I should get: "Could not locate a site your user may access identified by invalid." diff --git a/tests/features/site-org.feature b/tests/features/site-org.feature deleted file mode 100644 index 0bcc68bd3..000000000 --- a/tests/features/site-org.feature +++ /dev/null @@ -1,56 +0,0 @@ -Feature: Managing site organizational memberships - In order to manage what organizations a site is a member of - As a user - I need to be able to add and remove those relationships. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-org-add.yml - Scenario: Adding a supporting organization to a site - When I run "[[executable]] site:org:add [[test_site_name]] '[[organization_name]]'" - Then I should get: - """ - Adding [[organization_name]] as a supporting organization to [[test_site_name]]. - """ - And I should get: - """ - Added "[[organization_name]]" as a supporting organization - """ - - - @vcr site-org-remove.yml - Scenario: Removing a supporting organization from a site - When I run "[[executable]] site:org:remove [[test_site_name]] '[[organization_name]]'" - Then I should get: - """ - Removing [[organization_name]] as a supporting organization from [[test_site_name]]. - """ - And I should get: - """ - Removed supporting organization - """ - - @vcr site-org-remove.yml - Scenario: Listing the supporting organizations of a site - When I run "[[executable]] site:org:list [[test_site_name]]" - Then I should not see a warning - And I should see a table with rows like: - """ - Name - ID - """ - And that table should have 1 row - And I should get: "[[organization_name]]" - - @vcr site-org-list-empty.yml - Scenario: Listing the supporting organizations of a site - When I run "[[executable]] site:org:list [[test_site_name]]" - Then I should get the warning: "This site has no supporting organizations." - And I should see a table with rows like: - """ - Name - ID - """ - And that table should have no rows diff --git a/tests/features/site-team.feature b/tests/features/site-team.feature deleted file mode 100644 index aba795e8e..000000000 --- a/tests/features/site-team.feature +++ /dev/null @@ -1,85 +0,0 @@ -Feature: Managing a site's team - In order to work collaboratively - As a user - I need to be able to alter a site's team membership. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-team-add.yml - Scenario: Adding a team member - When I run "[[executable]] site:team:add [[test_site_name]] [[other_user]] developer" - And I list the team members on "[[test_site_name]]" - Then I should get: "----------------------- ------------- -------------------------------------- -----------" - And I should get: "Email Role User ID Is owner?" - And I should get: "----------------------- ------------- -------------------------------------- -----------" - And I should get: "[[username]] team_member 11111111-1111-1111-1111-111111111111 true" - And I should get: "[[other_user]] developer 3a1d2042-cca3-432e-94c4-12a8f2b6a950 false" - And I should get: "----------------------- ------------- -------------------------------------- -----------" - - @vcr site-team-add.yml - Scenario: Failing to add a team member because the given role is invalid - When I run "[[executable]] site:team:add [[test_site_name]] [[other_user]] admin" - Then I should get: "admin is not a valid role selection. Please enter developer or team_member." - - @vcr site-team-add-no-change-mgmt.yml - Scenario: Adding a team member without change management enabled - When I run "[[executable]] site:team:add [[test_site_name]] [[other_user]] developer" - Then I should see a warning message: Site does not have change management enabled, defaulting to user role team_member. - And I list the team members on "[[test_site_name]]" - Then I should get: "----------------------- ------------- -------------------------------------- -----------" - And I should get: "Email Role User ID Is owner?" - And I should get: "----------------------- ------------- -------------------------------------- -----------" - And I should get: "[[username]] team_member 11111111-1111-1111-1111-111111111111 true" - And I should get: "[[other_user]] team_member 3a1d2042-cca3-432e-94c4-12a8f2b6a950 false" - And I should get: "----------------------- ------------- -------------------------------------- -----------" - - @vcr site-team-role.yml - Scenario: Changing a team member's role - When I run "[[executable]] site:team:role [[test_site_name]] [[other_user]] developer" - Then I should get one of the following: "This site does not have its change-management option enabled., Changed a user role" - - @vcr site-team-role.yml - Scenario: Failing to change a team member's role because it's invalid - When I run "[[executable]] site:team:add [[test_site_name]] [[other_user]] admin" - Then I should get: "admin is not a valid role selection. Please enter developer or team_member." - - @vcr site-team-list.yml - Scenario: Listing team members - When I run "[[executable]] site:team:list [[test_site_name]]" - Then I should see a table with rows like: - """ - Email - Role - User ID - Is owner? - """ - - @vcr site-team-list-empty.yml - Scenario: Listing team members when there aren't any - When I run "[[executable]] site:team:list [[test_site_name]]" - Then I should get the warning: "[[test_site_name]] has no team members." - And I should see a table with rows like: - """ - Email - Role - User ID - Is owner? - """ - - @vcr site-team-remove.yml - Scenario: Removing a team member - When I run "[[executable]] site:team:remove [[test_site_name]] [[other_user]]" - Then I should get: - """ - Removed a user from site team - """ - - @vcr site-team-remove-self.yml - Scenario: Removing a team member - When I run "[[executable]] site:team:remove [[test_site_name]] [[other_user]]" - Then I should get: - """ - Removed your user from site team - """ diff --git a/tests/features/site-upstream-clear-cache.feature b/tests/features/site-upstream-clear-cache.feature deleted file mode 100644 index 47d107a88..000000000 --- a/tests/features/site-upstream-clear-cache.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Clearing a site's code cache - In order to keep my site running smoothly and see new upstream changes - As a user - I need to be able to clear my site's code cache. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-upstream-cache-clear.yml - Scenario: Clear the site's code cache - When I run "[[executable]] site:upstream:clear-cache [[test_site_name]]" - Then I should get: "Code cache cleared on [[test_site_name]]." diff --git a/tests/features/site-upstream-set.feature b/tests/features/site-upstream-set.feature deleted file mode 100644 index b9adfab94..000000000 --- a/tests/features/site-upstream-set.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: Set a site's upstream - In order to cut down on the amount of maintenance work I do - As a user - I need to be able to change the upstream of a site. - - Background: I am authenticated and I have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr site-upstream-set.yml - Scenario: Changing the upstream of a site and seeing the reversal command - When I run "[[executable]] site:upstream:set [[test_site_name]] 'Drupal 6' -v -y" - Then I should get: "To undo this change run `terminus site:upstream:set [[user_id]]" - And I should get: "Set upstream for [[test_site_name]] to Drupal 6" - - @vcr site-upstream-set-wrong-framework.yml - Scenario: Failing to change the upstream of a site because the upstream's framework does not match the site's - When I run "[[executable]] site:upstream:set [[test_site_name]] 'WordPress' -v -y" - Then I should get: "The site cannot be switched to the 'WordPress' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)" - - @vcr site-upstream-set-upstream-dne.yml - Scenario: Failing to change the upstream of a site because the requested upstream cannot be found - When I run "[[executable]] site:upstream:set [[test_site_name]] invalid -v -y" - Then I should get: "Could not find an upstream identified by invalid." - - @vcr site-upstream-set-unauthorized.yml - Scenario: Failing to change the upstream of a site because the user is not authorized to make that change - When I run "[[executable]] site:upstream:set [[test_site_name]] 'WordPress' -v -y" - Then I should get: "You do not have permission to change the upstream of this site." diff --git a/tests/features/solr.feature b/tests/features/solr.feature deleted file mode 100644 index ab4b60c35..000000000 --- a/tests/features/solr.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Using Solr - In order to enhance my users' ability to search my sites - As a business or an elite user - I need to be able to manipluate Solr via Terminus. - - Background: Given I am authenticated and have a site belonging to an organization - Given I am authenticated - And a site named "[[test_site_name]]" belonging to "[[organization_name]]" - - @vcr solr-enable.yml - Scenario: Enabling Solr - When I run "[[executable]] solr:enable [[test_site_name]]" - Then I should get: "Enabling indexserver for site" - - @vcr solr-disable.yml - Scenario: Disabling Solr - When I run "[[executable]] solr:disable [[test_site_name]]" - Then I should get: "Disabling indexserver for site" diff --git a/tests/features/ssh-key.feature b/tests/features/ssh-key.feature deleted file mode 100644 index f41d2560b..000000000 --- a/tests/features/ssh-key.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: SSH Keys - In order to work on my Pantheon site - As a user - I need to be able to manage my SSH keys. - - Background: I am logged in and have a site named [[test_site_name]] - Given I am authenticated - - @vcr ssh-key-list.yml - Scenario: List SSH keys - When I run "[[executable]] ssh-key:list" - Then I should get the warning: "You have no SSH keys." - And I should see a table with rows like: - """ - ID - Fingerprint - Description - """ - - @vcr ssh-key-add.yml - Scenario: Add an SSH key - When I run "[[executable]] ssh-key:add tests/config/dummy_key.pub" - Then I should get: "Added SSH key from file tests/config/dummy_key.pub" - - @vcr ssh-key-delete.yml - Scenario: Delete an SSH key - When I run "[[executable]] ssh-key:remove 11111111111111111111111111111" - Then I should get: "Deleted SSH key 11111111111111111111111111111!" - diff --git a/tests/features/tag.feature b/tests/features/tag.feature deleted file mode 100644 index 07ece7924..000000000 --- a/tests/features/tag.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: Tagging organizational sites - In order to organize and categorize sites - As a user - I need to be able to apply tags to those sites. - - Background: Given I am authenticated and have a site belonging to an organization - Given I am authenticated - And a site named "[[test_site_name]]" belonging to "[[organization_name]]" - - @vcr tag-add.yml - Scenario: Adding a tag - When I run "[[executable]] tag:add [[test_site_name]] '[[organization_name]]' testtag" - Then I should get: "[[organization_name]] has tagged [[test_site_name]] with testtag." - - @vcr tag-list.yml - Scenario: Listing a site's tags - When I run "[[executable]] tag:list [[test_site_name]] '[[organization_name]]'" - Then I should get: "- testtag" - - @vcr tag-remove.yml - Scenario: Removing a tag - When I run "[[executable]] tag:remove [[test_site_name]] '[[organization_name]]' testtag" - Then I should get: "[[organization_name]] has removed the testtag tag from [[test_site_name]]." - - @vcr tag-site-list-empty.yml - Scenario: Failing to list a site's tags because it hasn't any - When I run "[[executable]] tag:list [[test_site_name]] '[[organization_name]]'" - Then I should get: "[[organization_name]] does not have any tags for [[test_site_name]]." - And I should get: "{ }" diff --git a/tests/features/upstream-updates-list.feature b/tests/features/upstream-updates-list.feature deleted file mode 100644 index 78a889fe5..000000000 --- a/tests/features/upstream-updates-list.feature +++ /dev/null @@ -1,27 +0,0 @@ -Feature: Update a site with all its upstream's updates - In order to easily maintain my site - As a user - I need to be able to update my site to reflect updates in its current upstream. - - Background: I am authenticated and I have a site named [[test_site_name]] using Git mode - Given I am authenticated - And a site named "[[test_site_name]]" - And the connection mode of "[[test_site_name]]" is "git" - - @vcr upstream-updates.yml - Scenario: Check for upstream updates and there aren't any - When I run "[[executable]] upstream:updates:list [[test_site_name]].dev" - Then I should get: "There are no available updates for this site." - And I should get: "----------- ----------- --------- --------" - And I should get: "Commit ID Timestamp Message Author" - And I should get: "----------- ----------- --------- --------" - - @vcr upstream-update-list.yml - Scenario: Check for upstream updates and there are some - When I run "[[executable]] upstream:updates:list [[test_site_name]].dev" - Then I should get: "------------------------------------------ --------------------- -------------------------------------------------------------------------------------------------------------------------------------------- ---------------------" - And I should get: "Commit ID Timestamp Message Author" - And I should get: "------------------------------------------ --------------------- -------------------------------------------------------------------------------------------------------------------------------------------- ---------------------" - And I should get: "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d 2016-09-07T19:06:47 Update to WordPress 4.6.1. For more information, see: https://wordpress.org/news/2016/09/wordpress-4-6-1-security-and-maintenance-release/ Pantheon Automation" - And I should get: "99d9779d7924d37be5750954b774ec786a95e5e0 2016-08-16T20:13:12 Update to WordPress 4.6. For more information, see: https://wordpress.org/news/2016/08/pepper/ Pantheon Automation" - And I should get: "------------------------------------------ --------------------- -------------------------------------------------------------------------------------------------------------------------------------------- ---------------------" diff --git a/tests/features/upstream-updates-status.feature b/tests/features/upstream-updates-status.feature deleted file mode 100644 index bca9289f8..000000000 --- a/tests/features/upstream-updates-status.feature +++ /dev/null @@ -1,24 +0,0 @@ -Feature: Check an environment's upstream update status - In order to easily maintain my site - As a user - I need to be able to check my environments' upstream update status. - - Background: I am authenticated and I have a site named [[test_site_name]] using Git mode - Given I am authenticated - And a site named "[[test_site_name]]" - And the connection mode of "[[test_site_name]]" is "git" - - @vcr upstream-updates.yml - Scenario: Check for upstream update status when it's current - When I run "[[executable]] upstream:updates:status [[test_site_name]].dev" - Then I should get: "current" - - @vcr upstream-updates-no-code.yml - Scenario: Check for upstream update status when there's no code in the branch - When I run "[[executable]] upstream:updates:status [[test_site_name]].dev" - Then I should get: "current" - - @vcr upstream-update-list.yml - Scenario: Check for upstream updates status when it's outdated - When I run "[[executable]] upstream:updates:status [[test_site_name]].dev" - Then I should get: "outdated" diff --git a/tests/features/upstream.feature b/tests/features/upstream.feature deleted file mode 100644 index 1607fd83e..000000000 --- a/tests/features/upstream.feature +++ /dev/null @@ -1,167 +0,0 @@ -Feature: Listing upstreams - In order to decide on which upstream I can use - As a user - I need to be able to list available Pantheon upstreams. - - Background: I am logged in - Given I am authenticated - - @vcr upstream-list.yml - Scenario: List my custom and core upstreams - When I run "[[executable]] upstream:list" - Then I should get: "-------------------------------------- --------------------------------------------- ------------------------ -------- ----------- -----------------" - And I should get: "ID Name Machine Name Type Framework Organization" - And I should get: "-------------------------------------- --------------------------------------------- ------------------------ -------- ----------- -----------------" - And I should get: "cbdeadf3-669f-4848-94f5-c2354f256de8 Advostarter D8 advostarter-d8 custom drupal8" - And I should get: "b1057113-272a-4509-b0b0-1362ec31d71c Demo Upstream demo-upstream custom drupal" - And I should get: "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68 Drupal8 PHP drupal8-php7 custom drupal8 The Upstreamers" - And I should get: "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6 EasterEgg Kit easteregg-kit custom drupal8" - And I should get: "f575e77a-ff49-4bab-a53c-dbf8f59247bc Empty Drupal 7 empty-7 custom drupal" - And I should get: "53711c64-41eb-4f42-9ca9-a370f8e1e36f Empty WordPress empty-wordpress custom wordpress" - And I should get: "c28628b2-6b8f-4962-9838-69295c3fff68 Fairfax County Public Schools fcpsschools custom drupal8" - And I should get: "1f3b2569-b4f6-43ca-a8ae-11c38d90778e Inaccessible Upstream inaccessible-upstream custom wordpress The Upstreamers" - And I should get: "595003f1-e82e-4af8-ac18-65d09da2f6c5 Mindgrub Test mindgrub-test custom drupal The Upstreamers" - And I should get: "66665092-2d26-47c8-b7c3-a920a37fb805 My Demo Upstream my-demo-upstream custom drupal8 The Upstreamers" - And I should get: "745bfede-0557-42ea-a115-246e3b60e8e0 My Upstream for Demo my-upstream-for-demo custom drupal8 The Upstreamers" - And I should get: "ba06828d-9507-4217-b7ed-7acb7f9812cf Pivate Github Upstream pivate-github-upstream custom wordpress The Upstreamers" - And I should get: "c9f1311f-4cae-41ca-8276-cca230c25f37 Protected Upstream protected-upstream custom drupal The Upstreamers" - And I should get: "3a821c48-63b1-4e29-b0f7-8d6a5cafb953 Pubsub Test 2 pubsub-test-2 custom drupal8 The Upstreamers" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8 The Upstreamers" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8 The Upstreamers" - And I should get: "e44da442-2b1e-639a-f790-edf7cb26c9a0 Rutgers School Website - Wordpress rutgers_wp_custom custom wordpress" - And I should get: "64408272-2d4b-614a-753b-334a2baf4263 Rutgers Unit/Department Website - Wordpress ruwwpucd custom wordpress" - And I should get: "158e2876-13a4-427f-96cf-d29a3daa538b Sprowt sprowt-09022016 custom drupal" - And I should get: "de858279-cb87-4664-825c-fcb4c2928717 Static HTML static_html custom unknown" - And I should get: "8ed60b88-e3bb-4981-9701-777ee9e40435 Test PS Digital test-ps-digital custom wordpress" - And I should get: "11111111-1111-1111-1111-111111111111 Wordpress Class wordpress-class custom wordpress" - And I should get: "bf703821-4c18-45a1-88b8-3d9ec302273d Backdrop backdrop core backdrop" - And I should get: "35b0e365-a191-4c70-adbe-9d02d01343f3 Drops 8 Composer drops-8-composer core drupal8" - And I should get: "974b75c2-4ba7-49f8-8a54-3a45c07dfe02 Drupal 6 drupal6 core drupal" - And I should get: "21e1fada-199c-492b-97bd-0b36b53a9da0 Drupal 7 drupal7 core drupal" - And I should get: "8a129104-9d37-4082-aaf8-e6f31154644e Drupal 8 drupal8 core drupal8" - And I should get: "4c7176de-e079-eed1-154d-44d5a9945b65 Empty Upstream empty core drupal8" - And I should get: "e8fe8550-1ab9-4964-8838-2b9abdccf4bf WordPress wordpress core wordpress" - And I should get: "-------------------------------------- --------------------------------------------- ------------------------ -------- ----------- -----------------" - - @vcr upstream-list.yml - Scenario: List all of my upstreams - When I run "[[executable]] upstream:list --all" - Then I should get: "-------------------------------------- --------------------------------------------- ------------------------ --------- ----------- -----------------" - And I should get: "ID Name Machine Name Type Framework Organization" - And I should get: "-------------------------------------- --------------------------------------------- ------------------------ --------- ----------- -----------------" - And I should get: "bf703821-4c18-45a1-88b8-3d9ec302273d Backdrop backdrop core backdrop" - And I should get: "35b0e365-a191-4c70-adbe-9d02d01343f3 Drops 8 Composer drops-8-composer core drupal8" - And I should get: "974b75c2-4ba7-49f8-8a54-3a45c07dfe02 Drupal 6 drupal6 core drupal" - And I should get: "21e1fada-199c-492b-97bd-0b36b53a9da0 Drupal 7 drupal7 core drupal" - And I should get: "8a129104-9d37-4082-aaf8-e6f31154644e Drupal 8 drupal8 core drupal8" - And I should get: "4c7176de-e079-eed1-154d-44d5a9945b65 Empty Upstream empty core drupal8" - And I should get: "e8fe8550-1ab9-4964-8838-2b9abdccf4bf WordPress wordpress core wordpress" - And I should get: "cbdeadf3-669f-4848-94f5-c2354f256de8 Advostarter D8 advostarter-d8 custom drupal8" - And I should get: "b1057113-272a-4509-b0b0-1362ec31d71c Demo Upstream demo-upstream custom drupal" - And I should get: "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68 Drupal8 PHP drupal8-php7 custom drupal8 The Upstreamers" - And I should get: "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6 EasterEgg Kit easteregg-kit custom drupal8" - And I should get: "f575e77a-ff49-4bab-a53c-dbf8f59247bc Empty Drupal 7 empty-7 custom drupal" - And I should get: "53711c64-41eb-4f42-9ca9-a370f8e1e36f Empty WordPress empty-wordpress custom wordpress" - And I should get: "c28628b2-6b8f-4962-9838-69295c3fff68 Fairfax County Public Schools fcpsschools custom drupal8" - And I should get: "1f3b2569-b4f6-43ca-a8ae-11c38d90778e Inaccessible Upstream inaccessible-upstream custom wordpress The Upstreamers" - And I should get: "595003f1-e82e-4af8-ac18-65d09da2f6c5 Mindgrub Test mindgrub-test custom drupal The Upstreamers" - And I should get: "66665092-2d26-47c8-b7c3-a920a37fb805 My Demo Upstream my-demo-upstream custom drupal8 The Upstreamers" - And I should get: "745bfede-0557-42ea-a115-246e3b60e8e0 My Upstream for Demo my-upstream-for-demo custom drupal8 The Upstreamers" - And I should get: "ba06828d-9507-4217-b7ed-7acb7f9812cf Pivate Github Upstream pivate-github-upstream custom wordpress The Upstreamers" - And I should get: "c9f1311f-4cae-41ca-8276-cca230c25f37 Protected Upstream protected-upstream custom drupal The Upstreamers" - And I should get: "3a821c48-63b1-4e29-b0f7-8d6a5cafb953 Pubsub Test 2 pubsub-test-2 custom drupal8 The Upstreamers" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8 The Upstreamers" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8 The Upstreamers" - And I should get: "e44da442-2b1e-639a-f790-edf7cb26c9a0 Rutgers School Website - Wordpress rutgers_wp_custom custom wordpress" - And I should get: "64408272-2d4b-614a-753b-334a2baf4263 Rutgers Unit/Department Website - Wordpress ruwwpucd custom wordpress" - And I should get: "158e2876-13a4-427f-96cf-d29a3daa538b Sprowt sprowt-09022016 custom drupal" - And I should get: "de858279-cb87-4664-825c-fcb4c2928717 Static HTML static_html custom unknown" - And I should get: "8ed60b88-e3bb-4981-9701-777ee9e40435 Test PS Digital test-ps-digital custom wordpress" - And I should get: "11111111-1111-1111-1111-111111111111 Wordpress Class wordpress-class custom wordpress" - And I should get: "31bc4254-be20-4e8d-afe6-6c585e58435a Atrium openatrium2 product drupal" - And I should get: "6413825e-7c23-3549-bbf1-c797251bf6e9 CU Express 3 cuexpress product drupal8" - And I should get: "3b754bc2-48f8-4388-b5b5-2631098d03de CiviCRM Starter Kit civicrm_starterkit product drupal" - And I should get: "8a662dde-53d6-4fdb-8eac-eea9f5848d00 Commerce Kickstart kickstart product drupal" - And I should get: "d7370d7e-46fb-4b10-b79f-942b5abf51de DKAN dkan product drupal" - And I should get: "0fce9338-bd6f-4b87-a489-e9928a027696 Elephant Ventures Drupal Patterns drupal-patterns product drupal" - And I should get: "4c17f505-05d0-4b79-b38a-0bc548405a10 Open Outreach openoutreach product drupal" - And I should get: "6eb1ad36-afef-46d7-90d1-3a1bd4296863 Open Restaurant openrestaurant product drupal" - And I should get: "2adff196-4672-44c9-af2a-4590963b90d8 OpenAid openaid product drupal" - And I should get: "86112161-4cb2-410f-8bb1-8a1fb4f56dae OpenIdeaL openideal product drupal" - And I should get: "b459145b-8771-4597-8b84-684a3d93dce0 OpenPublic openpublic product drupal" - And I should get: "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908 OpenPublish openpublish product drupal" - And I should get: "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e Panopoly try_panopoly product drupal" - And I should get: "8ad1efe0-0231-42ae-9520-c96241495b82 Panopoly panopoly product drupal" - And I should get: "216f85b2-620b-470d-9597-f64ade76dc9a Plato Típico plato_tipico product drupal" - And I should get: "f141b5e0-a614-4294-a86c-6c24df9bf6c5 Pushtape pushtape product drupal" - And I should get: "10d6937e-1dd2-4490-9950-11867ba43597 RedHen Raiser redhen_raiser product drupal" - And I should get: "10d2f3a5-728a-460f-afa9-dbaee10eef3b Ruby Test Upstream rtupstream product wordpress Reng, Test" - And I should get: "-------------------------------------- --------------------------------------------- ------------------------ --------- ----------- -----------------" - - @vcr upstream-list.yml - Scenario: List my custom and core upstreams, filtered by framework - When I run "[[executable]] upstream:list --framework=drupal8" - Then I should get: "-------------------------------------- ------------------------------- ---------------------- -------- ----------- -----------------" - And I should get: "ID Name Machine Name Type Framework Organization" - And I should get: "-------------------------------------- ------------------------------- ---------------------- -------- ----------- -----------------" - And I should get: "cbdeadf3-669f-4848-94f5-c2354f256de8 Advostarter D8 advostarter-d8 custom drupal8" - And I should get: "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68 Drupal8 PHP drupal8-php7 custom drupal8 The Upstreamers" - And I should get: "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6 EasterEgg Kit easteregg-kit custom drupal8" - And I should get: "c28628b2-6b8f-4962-9838-69295c3fff68 Fairfax County Public Schools fcpsschools custom drupal8" - And I should get: "66665092-2d26-47c8-b7c3-a920a37fb805 My Demo Upstream my-demo-upstream custom drupal8 The Upstreamers" - And I should get: "745bfede-0557-42ea-a115-246e3b60e8e0 My Upstream for Demo my-upstream-for-demo custom drupal8 The Upstreamers" - And I should get: "3a821c48-63b1-4e29-b0f7-8d6a5cafb953 Pubsub Test 2 pubsub-test-2 custom drupal8 The Upstreamers" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8 The Upstreamers" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8 The Upstreamers" - And I should get: "35b0e365-a191-4c70-adbe-9d02d01343f3 Drops 8 Composer drops-8-composer core drupal8" - And I should get: "8a129104-9d37-4082-aaf8-e6f31154644e Drupal 8 drupal8 core drupal8" - And I should get: "4c7176de-e079-eed1-154d-44d5a9945b65 Empty Upstream empty core drupal8" - And I should get: "-------------------------------------- ------------------------------- ---------------------- -------- ----------- -----------------" - - @vcr upstream-list.yml - Scenario: List my custom and core upstreams, filtered by name - When I run "[[executable]] upstream:list --name=Drops" - Then I should get: "-------------------------------------- ------------------ -------------------- -------- ----------- -----------------" - And I should get: "ID Name Machine Name Type Framework Organization" - And I should get: "-------------------------------------- ------------------ -------------------- -------- ----------- -----------------" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8 The Upstreamers" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8 The Upstreamers" - And I should get: "35b0e365-a191-4c70-adbe-9d02d01343f3 Drops 8 Composer drops-8-composer core drupal8" - And I should get: "-------------------------------------- ------------------ -------------------- -------- ----------- -----------------" - - @vcr upstream-list.yml - Scenario: Get info on an upstream - When I run "[[executable]] upstream:info WordPress" - Then I should get: "-------------- ------------------------------------------------------------------------------------------" - And I should get: "ID e8fe8550-1ab9-4964-8838-2b9abdccf4bf" - And I should get: "Name WordPress" - And I should get: "Machine Name wordpress" - And I should get: "Type core" - And I should get: "Framework wordpress" - And I should get: "Description Open source software with powerful features, and the freedom to build anything you want." - And I should get: "Organization" - And I should get: "-------------- ------------------------------------------------------------------------------------------" - - @vcr upstream-list-empty.yml - Scenario: List upstreams when there aren't any available - When I run "[[executable]] upstream:list" - Then I should get the warning: "You have no upstreams." - And I should have "0" records - - @vcr org-upstream-list.yml - Scenario: List my organization's core and custom upstreams - When I run "[[executable]] upstream:list --org=the-upstreamers" - Then I should get: "-------------------------------------- ------------------------ ------------------------ -------- ----------- -----------------" - And I should get: "ID Name Machine Name Type Framework Organization" - And I should get: "-------------------------------------- ------------------------ ------------------------ -------- ----------- -----------------" - And I should get: "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68 Drupal8 PHP drupal8-php7 custom drupal8 The Upstreamers" - And I should get: "1f3b2569-b4f6-43ca-a8ae-11c38d90778e Inaccessible Upstream inaccessible-upstream custom wordpress The Upstreamers" - And I should get: "595003f1-e82e-4af8-ac18-65d09da2f6c5 Mindgrub Test mindgrub-test custom drupal The Upstreamers" - And I should get: "66665092-2d26-47c8-b7c3-a920a37fb805 My Demo Upstream my-demo-upstream custom drupal8 The Upstreamers" - And I should get: "745bfede-0557-42ea-a115-246e3b60e8e0 My Upstream for Demo my-upstream-for-demo custom drupal8 The Upstreamers" - And I should get: "ba06828d-9507-4217-b7ed-7acb7f9812cf Pivate Github Upstream pivate-github-upstream custom wordpress The Upstreamers" - And I should get: "c9f1311f-4cae-41ca-8276-cca230c25f37 Protected Upstream protected-upstream custom drupal The Upstreamers" - And I should get: "3a821c48-63b1-4e29-b0f7-8d6a5cafb953 Pubsub Test 2 pubsub-test-2 custom drupal8 The Upstreamers" - And I should get: "5de11c12-e5aa-4125-bc07-b0e14b1fd112 Ronan's Drops 8 ronans-drops-8-sfz custom drupal8 The Upstreamers" - And I should get: "2375d5c6-8dc2-467f-836b-2ddab05ebe28 Ronan's Drops 8 ronans-drops-8 custom drupal8 The Upstreamers" - And I should get: "-------------------------------------- ------------------------ ------------------------ -------- ----------- -----------------" diff --git a/tests/features/workflow.feature b/tests/features/workflow.feature deleted file mode 100644 index d915dd77a..000000000 --- a/tests/features/workflow.feature +++ /dev/null @@ -1,52 +0,0 @@ -Feature: View site workflow information - In order to view workflow information - As a user - I need to be able to list data related to them. - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named "[[test_site_name]]" - - @vcr workflow-list.yml - Scenario: List workflows - When I run "[[executable]] workflow:list [[test_site_name]]" - Then I should see a table with the headers: Workflow ID, Environment, Workflow, User, Status, Started At, Finished At, Time Elapsed - - @vcr workflow-list-empty.yml - Scenario: List workflows when none have been run - When I run "[[executable]] workflow:list [[test_site_name]]" - Then I should see a table with the headers: Workflow ID, Environment, Workflow, User, Status, Started At, Finished At, Time Elapsed - And I should get the warning: "No workflows have been run on [[test_site_name]]." - - @vcr workflow-info-status.yml - Scenario: Show a specific Workflow's status - When I run "[[executable]] workflow:info:status [[test_site_name]] --id=11111111-1111-1111-1111-111111111111" - Then I should see a table with rows like: - """ - Workflow ID - Environment - Workflow - User - Status - Started At - Finished At - Time Elapsed - """ - - @vcr workflow-info-status.yml - Scenario: Show a specific Workflow's operations - When I run "[[executable]] workflow:info:operations [[test_site_name]] --id=11111111-1111-1111-1111-111111111111" - Then I should see a table with the headers: Type, Operation, Description, Result, Duration - - @vcr workflow-info-status.yml - Scenario: Try show a Workflow that has no logs - When I run "[[executable]] workflow:info:logs [[test_site_name]] --id=11111111-1111-1111-1111-111111111111" - Then I should see a notice message: Workflow operations did not contain any logs. - - @vcr quicksilver-workflow-info-status.yml - Scenario: Show the most recent set of logs for a workflow that has logs - When I run "[[executable]] workflow:info:logs [[test_site_name]]" - Then I should get: "Showing latest workflow on [[test_site_name]]." - And I should get: "Simple Quicksilver Example finished in" - And I should get: "Quicksilver Debugging Output" - diff --git a/tests/features/wp-cli.feature b/tests/features/wp-cli.feature deleted file mode 100644 index a49796abb..000000000 --- a/tests/features/wp-cli.feature +++ /dev/null @@ -1,14 +0,0 @@ -Feature: Running WP-CLI Commands on a Drupal Site - In order to interact with Drupal without configuring Pantheon site aliases - As a Terminus user - I want the ability to run arbitrary WP-CLI commands in terminus - - Background: I am authenticated and have a site named [[test_site_name]] - Given I am authenticated - And a site named: [[test_site_name]] - - @vcr wp.yml - Scenario: Running a simple WP-CLI command - When I run: terminus wp [[test_site_name]].dev -- cli version - Then I should get: "[[executable]] is in test mode" - And I should get: "wp cli version" diff --git a/tests/fixtures/aliases.yml b/tests/fixtures/aliases.yml deleted file mode 100644 index df72f101d..000000000 --- a/tests/fixtures/aliases.yml +++ /dev/null @@ -1,64 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fcaa74c6-6403-11e6-bf57-bc764e105ecb:vYnPJtXqYYhv09Cso9gD4' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:39 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fd68eb90-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN","expires_at":1473807099,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: 'terminus.pantheon.io:443' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.0.1 (php_version=7.3.5&script=bin/terminus)' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 31 Jul 2019 22:38:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e5e48e60-b3e3-11e9-b851-3f2360551a87 - 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: '[{"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "8290b81c-623f-44dd-9d59-22f422fd511e", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "8290b81c-623f-44dd-9d59-22f422fd511e", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "longname": "WordPress"}, "service_level": "business", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "8fd6fd25904ea862b2dbc3a432d203277fea3452", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 22, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "purchased_at": 1528486647, "framework": "wordpress", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-b", "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "use_url_signer": true, "label": "wp-try-update"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "8290b81c-623f-44dd-9d59-22f422fd511e", "preferred_zone": "us-central1", "product_id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "wp-try-update", "created": 1528321611, "service_level_updated_at": 1528486647, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "last_code_push": {"timestamp": "2018-06-06T22:03:02", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}}}, {"archived": false, "invited_by_id": "06abca22-e65f-4cbb-8577-6ef3fdb6c758", "role": "team_member", "id": "862f5893-4854-4f57-8958-6148afc33aaf", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "862f5893-4854-4f57-8958-6148afc33aaf", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "24980c36-de42-4e59-9b64-1061514fad74", "product": {"id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "longname": "WordPress"}, "service_level": "basic_small", "user_in_charge": {"profile": {"google_adwords_pushed_code_do_send": null, "experiments": {}, "full_name": "Daniel Bachhuber", "devsites": 1, "initial_identity_strategy": null, "tracking_first_site_create": 1468527886, "tracking_first_ally_reg": 1468847954, "tracking_first_code_push": 1468856218, "invites_to_user": 5, "registration_context": null, "role": "Principal", "job_function": "developer", "tracking_first_workflow_in_live": 1468530366, "tracking_first_team_invite": 1478021870, "google_adwords_pushed_code_sent": 1468973029, "firstname": "Daniel", "invites_to_site": 5, "lastname": "Bachhuber", "phone": "(971) 998-5407", "initial_identity_name": null, "created_organization_name": "Hand Built", "guilty_of_abuse": null, "invites_sent": 5, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "terminus-1": true}, "modified": 1468342370, "maxdevsites": 22, "organization": "Hand Built"}, "id": "24980c36-de42-4e59-9b64-1061514fad74", "email": "daniel@handbuilt.co"}, "upstream_updates_by_environment": {"remote_head": "8fd6fd25904ea862b2dbc3a432d203277fea3452", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "purchased_at": 1563222076, "framework": "wordpress", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-b", "owner": "24980c36-de42-4e59-9b64-1061514fad74", "attributes": {"m3_ui": true, "label": "Pantheon HUD"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon WordPress CI", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "b7145261-2661-4843-a503-75b59b96205c"}, "id": "862f5893-4854-4f57-8958-6148afc33aaf", "preferred_zone": "us-central1", "product_id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "created_by_user_id": "24980c36-de42-4e59-9b64-1061514fad74", "holder_id": "b7145261-2661-4843-a503-75b59b96205c", "name": "pantheon-hud", "created": 1562339821, "service_level_updated_at": 1563222076, "instrument": "4be86d74-d6af-4f57-a0ce-7041305d5166", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "b7145261-2661-4843-a503-75b59b96205c", "plan_name": "Basic", "last_code_push": {"timestamp": "2019-07-31T00:04:05", "user_uuid": "7558a08d-8059-45f6-9c4b-908299a025ef"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "8a5311d2-162a-4a88-8561-ebf8706568cb", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "8a5311d2-162a-4a88-8561-ebf8706568cb", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 2, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "australia-southeast1-a", "framework": "drupal8", "preferred_zone_label": "Australia", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "id": "8a5311d2-162a-4a88-8561-ebf8706568cb", "preferred_zone": "australia-southeast1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "a-far-off-site-with-no-org", "created": 1560973950, "drush_version": 8, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "label": "A far-off site with no org"}, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-07-16T18:41:58", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "96b46d27-2ef3-4729-bfeb-6ab8175f06b6", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "96b46d27-2ef3-4729-bfeb-6ab8175f06b6", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1498856127, "product": {"id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "longname": "WordPress"}, "service_level": "performance_medium", "upstream_updates_by_environment": {"remote_head": "8fd6fd25904ea862b2dbc3a432d203277fea3452", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 8, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "preferred_availability_zone": "us-central1-c", "last_frozen_at": 1498514824, "purchased_at": 1545418877, "framework": "wordpress", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "owner": "de9fb5f0-89ed-452e-9bf0-523d1fc4eacd", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "ci-wordpress-core"}, "id": "96b46d27-2ef3-4729-bfeb-6ab8175f06b6", "preferred_zone": "us-central1", "product_id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "created_by_user_id": "de9fb5f0-89ed-452e-9bf0-523d1fc4eacd", "holder_id": "b7145261-2661-4843-a503-75b59b96205c", "name": "ci-wordpress-core", "created": 1480983136, "frozen": false, "multidev": true, "service_level_updated_at": 1545418877, "current_num_domains": 2, "instrument": "4be86d74-d6af-4f57-a0ce-7041305d5166", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "b7145261-2661-4843-a503-75b59b96205c", "plan_name": "Performance Medium", "last_code_push": {"timestamp": "2019-07-23T12:47:53", "user_uuid": "de9fb5f0-89ed-452e-9bf0-523d1fc4eacd"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "9a80a139-bbdd-42f9-82ee-6e0b227eb8b8", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "9a80a139-bbdd-42f9-82ee-6e0b227eb8b8", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-f", "last_frozen_at": 1549236680, "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "id": "9a80a139-bbdd-42f9-82ee-6e0b227eb8b8", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "terminus-example-sight", "created": 1538759552, "frozen": true, "drush_version": 8, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "use_url_signer": true, "label": "Terminus Example Sight"}, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2018-10-05T17:13:50", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "a5b95ea0-f27c-457d-b9e1-9d7e4a496b19", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "a5b95ea0-f27c-457d-b9e1-9d7e4a496b19", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "567cda2f-bba9-d7b1-0d37-f09e7f7fb1db", "longname": "empty-8"}, "service_level": "business", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-a", "purchased_at": 1499834306, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/empty.git", "product_id": "4c7176de-e079-eed1-154d-44d5a9945b65", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "updatinator"}, "id": "a5b95ea0-f27c-457d-b9e1-9d7e4a496b19", "preferred_zone": "us-central1", "product_id": "567cda2f-bba9-d7b1-0d37-f09e7f7fb1db", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "updatinator", "created": 1499462301, "drush_version": 8, "last_code_push": {"timestamp": "2017-07-07T22:43:34", "user_uuid": null}, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "service_level_updated_at": 1499834306}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "a763857f-1b63-41df-8bc2-aea350780c75", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "a763857f-1b63-41df-8bc2-aea350780c75", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1552003471, "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "6922bfa7-d771-4a39-8e62-052cb1e8dd75", "branch": "staging"}, "last_frozen_at": 1559848917, "framework": "drupal8", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-c", "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "Drupal 8 Release Testing"}, "id": "a763857f-1b63-41df-8bc2-aea350780c75", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "name": "drupal-8-release-testing", "created": 1449093258, "frozen": true, "drush_version": 8, "current_num_domains": 0, "instrument": "4319b9b4-dbdc-4206-ae00-35c9105fb7a1", "holder_type": "organization", "php_version": 55, "site_routing_to_legacy_edge": false, "organization": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "service_level_updated_at": 1449093257, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-03-08T00:14:44", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "a7c439a5-18a0-4abe-9029-54136fe17234", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "a7c439a5-18a0-4abe-9029-54136fe17234", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "australia-southeast1-a", "framework": "drupal", "preferred_zone_label": "Australia", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "au987654"}, "holder": {"profile": {"machine_name": null, "change_service_url": "", "name": "Pantheon Engineering Yolo Sites", "email_domain": null, "base_domain": null, "billing_url": "", "terms_of_service": ""}, "id": "e114eb3f-e07e-40da-b5ee-bef34b440690"}, "id": "a7c439a5-18a0-4abe-9029-54136fe17234", "preferred_zone": "australia-southeast1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "au987654", "created": 1560891436, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-18T20:59:09", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "ac2022fe-4223-4e80-a290-42a0db87a1d6", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "ac2022fe-4223-4e80-a290-42a0db87a1d6", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1544075936, "product": {"id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "longname": "WordPress"}, "service_level": "performance_medium", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "upstream_updates_by_environment": {"remote_head": "8fd6fd25904ea862b2dbc3a432d203277fea3452", "ahead": 0, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 11, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "last_frozen_at": 1541061325, "purchased_at": 1471377316, "framework": "wordpress", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-f", "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "wp-update"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "ac2022fe-4223-4e80-a290-42a0db87a1d6", "preferred_zone": "us-central1", "product_id": "5758ea6a-bfda-4d56-bc0c-38584ec1a448", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "wp-update", "created": 1471376469, "frozen": false, "service_level_updated_at": 1544130447, "current_num_domains": 0, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Performance Medium", "last_code_push": {"timestamp": "2018-12-06T21:34:32", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "bdaac1bd-116c-49a9-9508-6464ecf47184", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "bdaac1bd-116c-49a9-9508-6464ecf47184", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1513091957, "product": null, "service_level": "business", "upstream_updates_by_environment": {"test": {"has_code": false}, "live": {"has_code": false}, "has_code": false, "dev": {"has_code": false}}, "max_num_cdes": 20, "last_frozen_at": 1498630626, "purchased_at": 1513104208, "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-f", "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "php-info"}, "id": "bdaac1bd-116c-49a9-9508-6464ecf47184", "preferred_zone": "us-central1", "product_id": null, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "php-info", "created": 1472779840, "frozen": false, "service_level_updated_at": 1513104208, "current_num_domains": 0, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "site_routing_to_legacy_edge": false, "allow_cacheserver": true, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "last_code_push": {"timestamp": "2019-03-21T13:06:37", "user_uuid": null}}}, {"archived": false, "invited_by_id": "7558a08d-8059-45f6-9c4b-908299a025ef", "role": "team_member", "id": "c401fd14-f745-4e51-9af2-f30b45146a0c", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "c401fd14-f745-4e51-9af2-f30b45146a0c", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "7558a08d-8059-45f6-9c4b-908299a025ef", "product": {"id": "45d3b2da-82da-b7f7-7aaa-cc263e26e082", "longname": "Drupal 8 Composer"}, "service_level": "free", "user_in_charge": {"profile": {"utm_term": "", "utm_ad_group_name": "", "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Pantheon CI Bot", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1477772816, "tracking_first_ally_reg": 1477764054, "tracking_first_code_push": 1477779219, "invites_to_user": 2, "registration_context": null, "role": "CI Bot", "job_function": "it", "utm_medium": "", "tracking_first_workflow_in_live": 1477778696, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1478039703, "google_adwords_pushed_code_sent": 1478730744, "firstname": "Pantheon CI", "invites_to_site": 2, "lastname": "Bot", "pda_campaign": null, "utm_source": "", "phone": "415 555 5555", "web_services_business": null, "initial_identity_name": null, "created_organization_name": "CI for Drupal 8 + Composer", "guilty_of_abuse": null, "invites_sent": 2, "dtl": "", "modified": 1488335988, "maxdevsites": 12, "verify": "2de9b2d78b23cf263b7fed09fb7ac43f", "google_adwords_account_registered_sent": 1477763675, "organization": "Pantheon / Automation"}, "id": "7558a08d-8059-45f6-9c4b-908299a025ef", "email": "greg+ci-d8-composer@pantheon.io"}, "upstream_updates_by_environment": {"remote_head": "7dad5ee2ebb87e712c8bb0cb441f8966a32adf7a", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/example-drops-8-composer.git"}, "max_num_cdes": 20, "framework": "drupal8", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-a", "owner": "7558a08d-8059-45f6-9c4b-908299a025ef", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "CI Example D8 Composer"}, "holder": {"profile": {"utm_term": "", "utm_ad_group_name": "", "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Pantheon CI Bot", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1477772816, "tracking_first_ally_reg": 1477764054, "tracking_first_code_push": 1477779219, "invites_to_user": 2, "registration_context": null, "role": "CI Bot", "job_function": "it", "utm_medium": "", "tracking_first_workflow_in_live": 1477778696, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1478039703, "google_adwords_pushed_code_sent": 1478730744, "firstname": "Pantheon CI", "invites_to_site": 2, "lastname": "Bot", "pda_campaign": null, "utm_source": "", "phone": "415 555 5555", "web_services_business": null, "initial_identity_name": null, "created_organization_name": "CI for Drupal 8 + Composer", "guilty_of_abuse": null, "invites_sent": 2, "dtl": "", "modified": 1488335988, "maxdevsites": 12, "verify": "2de9b2d78b23cf263b7fed09fb7ac43f", "google_adwords_account_registered_sent": 1477763675, "organization": "Pantheon / Automation"}, "id": "7558a08d-8059-45f6-9c4b-908299a025ef", "email": "greg+ci-d8-composer@pantheon.io"}, "id": "c401fd14-f745-4e51-9af2-f30b45146a0c", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-07-28T00:12:39", "user_uuid": "7558a08d-8059-45f6-9c4b-908299a025ef"}, "created_by_user_id": "7558a08d-8059-45f6-9c4b-908299a025ef", "holder_id": "7558a08d-8059-45f6-9c4b-908299a025ef", "name": "ci-example-d8-composer", "created": 1477772813, "drush_version": 8, "current_num_domains": 0, "holder_type": "user", "product_id": "45d3b2da-82da-b7f7-7aaa-cc263e26e082", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "upstream": {"url": "https://github.com/pantheon-systems/example-drops-8-composer.git", "product_id": "35b0e365-a191-4c70-adbe-9d02d01343f3", "branch": "master"}, "plan_name": "Sandbox", "service_level_updated_at": 1477772813}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "de43017f-87b4-49ed-a740-e9b64006d684", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "de43017f-87b4-49ed-a740-e9b64006d684", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "northamerica-northeast1-b", "framework": "drupal", "preferred_zone_label": "Canada", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "my-alt-usa-site"}, "id": "de43017f-87b4-49ed-a740-e9b64006d684", "preferred_zone": "northamerica-northeast1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "my-alt-usa-site", "created": 1560964288, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-19T17:12:57", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "df67f6f5-652e-4bff-9a9b-29590b740390", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "df67f6f5-652e-4bff-9a9b-29590b740390", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 0, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 0, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "us-central1-a", "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "Drupa 652 Test"}, "id": "df67f6f5-652e-4bff-9a9b-29590b740390", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "drupa-652-test", "created": 1557367077, "drush_version": 8, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-05-09T02:04:20", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "e2d45e3e-e9aa-4f61-9029-05823336ebeb", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "e2d45e3e-e9aa-4f61-9029-05823336ebeb", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-f", "last_frozen_at": 1558640014, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "id": "e2d45e3e-e9aa-4f61-9029-05823336ebeb", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "testnoregionflag2", "created": 1548200391, "frozen": true, "drush_version": 8, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "label": "Test No Region Flag 2"}, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-01-22T23:41:17", "user_uuid": null}}}, {"archived": false, "invited_by_id": "44052a77-90e7-4a46-a430-08c5c634c0dd", "role": "team_member", "id": "e517ac34-c5b1-44cc-8134-a82ac219a589", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "e517ac34-c5b1-44cc-8134-a82ac219a589", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f", "longname": "Empty WordPress"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-b", "framework": "wordpress", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/empty-wp.git", "product_id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f", "branch": "master"}, "owner": "44052a77-90e7-4a46-a430-08c5c634c0dd", "attributes": {"m3_ui": true, "label": "ganderson-wordsesh-2019"}, "id": "e517ac34-c5b1-44cc-8134-a82ac219a589", "preferred_zone": "us-central1", "product_id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f", "created_by_user_id": "44052a77-90e7-4a46-a430-08c5c634c0dd", "holder_id": "44052a77-90e7-4a46-a430-08c5c634c0dd", "name": "ganderson-wordsesh-2019", "created": 1555436283, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "815ae487-cd6b-4640-9454-a1f2aca41b4a", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-04-16T17:43:07", "user_uuid": "44052a77-90e7-4a46-a430-08c5c634c0dd"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "f4acd01e-c989-48ab-8921-69c38206edee", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "f4acd01e-c989-48ab-8921-69c38206edee", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1502924636, "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "business", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-f", "last_frozen_at": 1501457321, "purchased_at": 1503013469, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"use_url_signer": true, "label": "CI Example D7 Composer"}, "id": "f4acd01e-c989-48ab-8921-69c38206edee", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "ci-example-d7-composer", "created": 1487822555, "frozen": false, "drush_version": 8, "current_num_domains": 0, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "service_level_updated_at": 1503013469, "plan_name": "Business", "last_code_push": {"timestamp": "2019-07-16T19:51:33", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "f64db65f-fa53-4b13-bbc0-d98879f129fa", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "f64db65f-fa53-4b13-bbc0-d98879f129fa", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-f", "last_frozen_at": 1558739956, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "id": "f64db65f-fa53-4b13-bbc0-d98879f129fa", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "throwawaysite", "created": 1548288748, "frozen": true, "drush_version": 8, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "label": "Throwaway Site"}, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-01-24T00:13:56", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "03a92f67-1231-475b-828b-77d70f70fb22", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "03a92f67-1231-475b-828b-77d70f70fb22", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-c", "last_frozen_at": 1558606271, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "id": "03a92f67-1231-475b-828b-77d70f70fb22", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "testnoregionflag3", "created": 1548201616, "frozen": true, "drush_version": 8, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "label": "Test No Region Flag 3"}, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-01-23T00:01:36", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "04a27233-8de8-4800-8333-f5560107e08f", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "04a27233-8de8-4800-8333-f5560107e08f", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 3, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "europe-west4-b", "framework": "drupal8", "preferred_zone_label": "European Union", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "My EU site in the EU in Europe"}, "id": "04a27233-8de8-4800-8333-f5560107e08f", "preferred_zone": "europe-west4", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "0154aa27-7616-47b9-8b9a-207748a33c60", "name": "my-eu-site-in-the-eu-in-europe", "created": 1560797641, "drush_version": 8, "instrument": "9d45487b-dbc7-4c29-b5c6-e342eef0a20a", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "0154aa27-7616-47b9-8b9a-207748a33c60", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-17T18:54:55", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "0dace932-419e-42b6-8509-ca0b4d521433", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "0dace932-419e-42b6-8509-ca0b4d521433", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 10, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "us-central1-a", "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "statusfull-site"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "0dace932-419e-42b6-8509-ca0b4d521433", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "statusfull-site", "created": 1554329228, "drush_version": 8, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-04-03T22:08:49", "user_uuid": null}}}, {"archived": false, "invited_by_id": "342dc1c6-b7ed-4741-b567-2b64cdd250e2", "role": "team_member", "id": "169e046c-63a1-4388-8ac6-b4fec3cba429", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "169e046c-63a1-4388-8ac6-b4fec3cba429", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "c7a6215f-89ca-4114-b8b5-c686ef44e2b4", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "business", "user_in_charge": {"profile": {}, "id": "c7a6215f-89ca-4114-b8b5-c686ef44e2b4"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 72, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 29, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "max_num_cdes": "20", "framework": "drupal", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-f", "owner": "c7a6215f-89ca-4114-b8b5-c686ef44e2b4", "attributes": {"status": "1", "status_check_last_run": "2015-05-15T05:27:09.112Z", "created": "1342291091", "use_url_signer": true, "label": "Sales and Marketing Metrics", "live": "0", "has_multiorg": true, "hostname_limit": true, "m3_ui": true, "lb_disabled_at_live": 1507281278, "dev-branches": true, "lb_deleted_at_live": 1507891647}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Apps", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "7e8caca6-010c-4fcd-be69-922c742d858f"}, "id": "169e046c-63a1-4388-8ac6-b4fec3cba429", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "preferred_pool": "default", "holder_id": "7e8caca6-010c-4fcd-be69-922c742d858f", "name": "sales-and-marketing-metrics", "created": 1342291089, "multidev": true, "service_level_updated_at": 1530406225, "current_num_domains": 1, "instrument": "1926da5f-fc23-4291-8a94-24f1ccc799be", "holder_type": "organization", "site_routing_to_legacy_edge": false, "allow_cacheserver": true, "organization": "7e8caca6-010c-4fcd-be69-922c742d858f", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "plan_name": "Business", "last_code_push": {"timestamp": "2018-10-18T17:35:15", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "1967ede3-a9da-475d-bfb0-75598b8c02b1", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "1967ede3-a9da-475d-bfb0-75598b8c02b1", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "elite_1m_2m", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-f", "purchased_at": 1523296799, "framework": "drupal8", "organization": "770d940c-db89-4e55-91d3-d4a636e402d5", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "dr_enabled": false, "use_url_signer": true, "label": "g1a"}, "holder": {"profile": {"machine_name": null, "change_service_url": "", "name": "Athena of Pantheon", "email_domain": null, "base_domain": null, "billing_url": "", "terms_of_service": ""}, "id": "770d940c-db89-4e55-91d3-d4a636e402d5"}, "id": "1967ede3-a9da-475d-bfb0-75598b8c02b1", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-05-30T22:52:29", "user_uuid": null}, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "770d940c-db89-4e55-91d3-d4a636e402d5", "name": "g1a", "created": 1523283274, "drush_version": 8, "current_num_domains": 1, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 4, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "instrument": "c9f1d4ad-cc23-4e7b-85e9-dcab6a6401b3", "holder_type": "organization", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "php_version": "55", "site_routing_to_legacy_edge": false, "preferred_dr_availability_zone": "us-central1-a", "plan_name": "Elite", "service_level_updated_at": 1545315496}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "244c712c-ffe6-4285-bef1-083359bbfd13", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "244c712c-ffe6-4285-bef1-083359bbfd13", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 3, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "us-central1-c", "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "Here Is Another Test Site"}, "id": "244c712c-ffe6-4285-bef1-083359bbfd13", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "here-is-another-test-site", "created": 1561415190, "drush_version": 8, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-24T22:27:23", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "32da2d0a-121f-4602-9f85-167e0370d4a0", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "32da2d0a-121f-4602-9f85-167e0370d4a0", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1499113512, "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "business", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 18, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "us-central1-c", "last_frozen_at": 1498433417, "purchased_at": 1499355444, "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "40f10944-56c9-4029-b740-5ae296e1adf7", "allow_indexserver": true, "attributes": {"use_url_signer": true, "label": "ci-drops-7"}, "id": "32da2d0a-121f-4602-9f85-167e0370d4a0", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-07-16T22:48:33", "user_uuid": "7558a08d-8059-45f6-9c4b-908299a025ef"}, "created_by_user_id": "40f10944-56c9-4029-b740-5ae296e1adf7", "holder_id": "b7145261-2661-4843-a503-75b59b96205c", "name": "ci-drops-7", "created": 1486404693, "frozen": false, "drush_version": 8, "current_num_domains": 0, "instrument": "4be86d74-d6af-4f57-a0ce-7041305d5166", "holder_type": "organization", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "b7145261-2661-4843-a503-75b59b96205c", "plan_name": "Business", "service_level_updated_at": 1499355444}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "5055b600-18a9-43c6-aead-3440fe9345cb", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "5055b600-18a9-43c6-aead-3440fe9345cb", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "australia-southeast1-a", "framework": "drupal", "preferred_zone_label": "Australia", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "my-roo-site"}, "id": "5055b600-18a9-43c6-aead-3440fe9345cb", "preferred_zone": "australia-southeast1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "my-roo-site", "created": 1560963804, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-19T17:05:21", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "5cbd78f8-3a96-492a-beb0-f892421708d8", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "5cbd78f8-3a96-492a-beb0-f892421708d8", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "business", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-b", "purchased_at": 1489071630, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "allow_indexserver": true, "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "gk-8"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "5cbd78f8-3a96-492a-beb0-f892421708d8", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-06-05T20:43:32", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "gk-8", "created": 1488869618, "drush_version": 8, "current_num_domains": 4, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "service_level_updated_at": 1489071630}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "5cd6ca3d-09e8-4d54-8ee3-04ee2d6f9ca3", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "5cd6ca3d-09e8-4d54-8ee3-04ee2d6f9ca3", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "business", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 5, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "migration_origin_url": "https://amateurcosmology.drupalgardens.com/", "purchased_at": 1469484166, "preferred_availability_zone": "us-central1-f", "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"use_url_signer": true, "label": "Amateur Cosmology"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "5cd6ca3d-09e8-4d54-8ee3-04ee2d6f9ca3", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "migration_started_at": 1469482407, "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "migration_completed_at": 1469482633, "name": "amateur-cosmology", "created": 1469482346, "drush_version": 8, "current_num_domains": 0, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": 55, "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "service_level_updated_at": 1522213829, "plan_name": "Business", "last_code_push": {"timestamp": "2019-01-16T21:25:22", "user_uuid": null}}}, {"archived": false, "invited_by_id": "fe41b76f-9e1b-4014-afad-a283470510db", "role": "team_member", "id": "61e1a3e6-48d2-4ba1-9316-9868aafae788", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "61e1a3e6-48d2-4ba1-9316-9868aafae788", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1524774551, "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "pro", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1436550840, "invites_to_nonuser": 7, "pullFromLive": true, "devsites": 0, "experiments": {}, "registration_context": null, "full_name": "Jerry Blakley", "created_agency_name": "Pantheon Engineering Yolo Sites", "web_services_business": true, "initial_identity_strategy": null, "invites_sent": 20, "tracking_first_ally_reg": 1436220699, "invites_to_user": 13, "dashboard_visits": [{"date": "2014-05-28T18:36:30.168Z", "site": "39bb1dd2-014e-4499-96cc-144bf34353fb"}], "role": "Developer", "tracking_first_workflow_in_live": 1417475841, "tracking_first_team_invite": 1428605219, "firstname": "Jerry", "invites_to_site": 4, "lastname": "Blakley", "google_adwords_paid_for_site_sent": 1434592437, "last-org-spinup": "e114eb3f-e07e-40da-b5ee-bef34b440690", "tracking_first_site_create": 1415822294, "initial_identity_name": null, "created_organization_name": "Pantheon Engineering Yolo Sites", "guilty_of_abuse": null, "invites_to_org": 16, "tracking_first_site_upgrade": 1434418252, "seens": {"new-site-support-interface": true, "skip-cms-installation": {"8bc7770a-9dea-4b52-875c-ce35b1b8ece5": true}}, "phone": "8588153544", "modified": 1524864341, "activity_level": "low", "maxdevsites": 18, "organization": "Pantheon"}, "id": "31a1bdcb-aa7c-4913-8ae5-4d9e8d02f1a2", "email": "jerry@getpantheon.com"}, "user_in_charge_id": "31a1bdcb-aa7c-4913-8ae5-4d9e8d02f1a2", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 12, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7"}, "upstream": {"url": "https://github.com/pantheon-systems/drops-7", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "last_frozen_at": 1512093307, "purchased_at": 1438717962, "framework": "drupal", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-a", "owner": "31a1bdcb-aa7c-4913-8ae5-4d9e8d02f1a2", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "yolo-marks-pantheon-site"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Apps", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "7e8caca6-010c-4fcd-be69-922c742d858f"}, "id": "61e1a3e6-48d2-4ba1-9316-9868aafae788", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "31a1bdcb-aa7c-4913-8ae5-4d9e8d02f1a2", "preferred_pool": "default", "holder_id": "7e8caca6-010c-4fcd-be69-922c742d858f", "name": "yolo-marks-pantheon-site", "created": 1436300902, "frozen": false, "service_level_updated_at": 1524780246, "current_num_domains": 0, "instrument": "1926da5f-fc23-4291-8a94-24f1ccc799be", "holder_type": "organization", "site_routing_to_legacy_edge": false, "organization": "7e8caca6-010c-4fcd-be69-922c742d858f", "plan_name": "Professional", "last_code_push": {"timestamp": "2018-10-16T21:20:53", "user_uuid": null}}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "61ec41bc-ecc0-4fbe-b89c-a56f55648a68", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "61ec41bc-ecc0-4fbe-b89c-a56f55648a68", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "business", "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 3, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 2, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "us-central1-c", "purchased_at": 1464658760, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "Crebl Org"}, "id": "61ec41bc-ecc0-4fbe-b89c-a56f55648a68", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-07-26T17:34:07", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "crebl-org", "created": 1464658473, "drush_version": 8, "current_num_domains": 5, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "php_version": 55, "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "service_level_updated_at": 1464658760}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "6733bea1-6376-4e4f-8e9b-d77a7f397e3f", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "6733bea1-6376-4e4f-8e9b-d77a7f397e3f", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "performance_medium", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 5, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "us-central1-a", "purchased_at": 1557852823, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "mongodb-test"}, "holder": {"profile": {"machine_name": null, "change_service_url": "", "name": "Pantheon Engineering Yolo Sites", "email_domain": null, "base_domain": null, "billing_url": "", "terms_of_service": ""}, "id": "e114eb3f-e07e-40da-b5ee-bef34b440690"}, "id": "6733bea1-6376-4e4f-8e9b-d77a7f397e3f", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "mongodb-test", "created": 1557852251, "drush_version": 8, "last_code_push": {"timestamp": "2019-05-14T16:45:30", "user_uuid": null}, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Performance Medium", "service_level_updated_at": 1557852823}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "67b44089-092f-4442-a3a7-06831bfc1e46", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "67b44089-092f-4442-a3a7-06831bfc1e46", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 3, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "preferred_availability_zone": "us-central1-b", "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "cos-alpha-curltest"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "67b44089-092f-4442-a3a7-06831bfc1e46", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "preferred_pool": "cos", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "cos-alpha-curltest", "created": 1560369357, "drush_version": 8, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-12T19:57:21", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "689219ca-6583-4af8-ab05-2cebf6ef79a0", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "689219ca-6583-4af8-ab05-2cebf6ef79a0", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"last_unfrozen_at": 1498072244, "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 7, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "last_frozen_at": 1498042363, "preferred_availability_zone": "us-central1-c", "framework": "drupal8", "preferred_zone_label": "United States", "max_num_cdes": 25, "owner": "129876fb-3694-42a0-8be0-075046ddf5ba", "id": "689219ca-6583-4af8-ab05-2cebf6ef79a0", "preferred_zone": "us-central1", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "created_by_user_id": "129876fb-3694-42a0-8be0-075046ddf5ba", "holder_id": "129876fb-3694-42a0-8be0-075046ddf5ba", "name": "ci-drops-8", "created": 1477431827, "frozen": false, "multidev": true, "drush_version": 8, "current_num_domains": 0, "holder_type": "user", "php_version": "55", "site_routing_to_legacy_edge": false, "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "ci-drops-8"}, "service_level_updated_at": 1477431827, "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-07-17T17:24:52", "user_uuid": "129876fb-3694-42a0-8be0-075046ddf5ba"}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "6afb571f-9e80-49e9-9d5e-f5ca37a803d3", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "6afb571f-9e80-49e9-9d5e-f5ca37a803d3", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "us-central1-f", "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "my-alt-us-site"}, "id": "6afb571f-9e80-49e9-9d5e-f5ca37a803d3", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "my-alt-us-site", "created": 1560963877, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-19T17:07:37", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "721bda1f-c233-48b3-8f68-cb37b1da5e7b", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "721bda1f-c233-48b3-8f68-cb37b1da5e7b", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "free", "upstream_updates_by_environment": {"has_code": false}, "preferred_availability_zone": "us-central1-f", "last_frozen_at": 1501738205, "framework": "drupal8", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "use_url_signer": true, "label": "yolo-drops8-composer"}, "id": "721bda1f-c233-48b3-8f68-cb37b1da5e7b", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2017-05-04T23:17:28", "user_uuid": null}, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "yolo-drops8-composer", "created": 1479766106, "frozen": true, "drush_version": 8, "current_num_domains": 0, "holder_type": "user", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "service_level_updated_at": 1479766106}}, {"archived": false, "invited_by_id": "ed828d9d-2389-4e8d-9f71-bd2fcafc93c2", "role": "team_member", "id": "72e163bd-0054-4332-8bf8-219c50b78581", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "72e163bd-0054-4332-8bf8-219c50b78581", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "business", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 42, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": true, "is_up_to_date_with_upstream": true}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {"has_code": true, "is_up_to_date_with_upstream": true}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "max_num_cdes": 25, "domain_lookup_rax": 1561559224, "framework": "drupal", "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-a", "owner": "7d73f088-0562-42e2-86f0-f8088b41f890", "allow_indexserver": true, "attributes": {"status": "1", "status_check_last_run": "2015-07-20T21:09:02.227Z", "name": "panther", "created": 1423337768, "use_url_signer": true, "label": "pantheon.io", "live": "0", "hostname_limit": true, "m3_ui": true}, "id": "72e163bd-0054-4332-8bf8-219c50b78581", "preferred_zone": "us-central1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "holder_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "name": "panther", "created": 1420742931, "multidev": true, "service_level_updated_at": 1423171366, "current_num_domains": 6, "instrument": "4319b9b4-dbdc-4206-ae00-35c9105fb7a1", "holder_type": "organization", "site_routing_to_legacy_edge": false, "allow_cacheserver": true, "organization": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "plan_name": "Business", "last_code_push": {"timestamp": "2019-07-31T18:32:15", "user_uuid": "d80af4ec-4442-4a39-8e73-5f0270e619e0"}}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "732afb71-43d4-40b4-8b63-bfab34652d6c", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "732afb71-43d4-40b4-8b63-bfab34652d6c", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "business", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 3, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": true, "is_up_to_date_with_upstream": true}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {"has_code": true, "is_up_to_date_with_upstream": true}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7"}, "preferred_availability_zone": "us-central1-c", "purchased_at": 1464540121, "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "hostname_limit": true, "label": "Couture Costume"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Pantheon Open Source Team", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba"}, "id": "732afb71-43d4-40b4-8b63-bfab34652d6c", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-06-25T17:21:47", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "name": "couture-costume", "created": 1464467267, "drush_version": 8, "current_num_domains": 6, "instrument": "812222cc-b244-49c8-9120-378a9d7f6488", "holder_type": "organization", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "php_version": 55, "site_routing_to_legacy_edge": false, "organization": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "plan_name": "Business", "service_level_updated_at": 1464540121}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "78d45b10-9189-49e1-9d7c-7754b706bcfb", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "78d45b10-9189-49e1-9d7c-7754b706bcfb", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "8d4e19a4-0bad-4301-8838-b392caee5584", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "basic_small", "user_in_charge": {"profile": {"invites_to_nonuser": 13, "devsites": 2, "experiments": {}, "full_name": "Chris Teitzel", "pullFromLive": false, "initial_identity_strategy": null, "tracking_first_site_create": 1408489030, "tracking_first_code_push": 1408602236, "invites_to_user": 31, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1408746210, "tracking_first_team_invite": 1409243794, "google_adwords_pushed_code_sent": 1408746146, "firstname": "Chris", "invites_to_site": 44, "lastname": "Teitzel", "copyCodeUpdatePhp": false, "phone": "(757) 636-7139", "last-org-spinup": "6c051857-6af2-4c77-92ae-26a336af44ec", "web_services_business": true, "initial_identity_name": null, "created_organization_name": "HopeOneSource", "copyCodeClearCache": false, "guilty_of_abuse": false, "invites_sent": 44, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1408583851, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "skip-cms-installation": {"78feb702-e710-44e0-b07f-0558c16ec2d7": true, "b8e19e80-0994-4c36-8439-a7e3037bb7b9": true, "779f3a61-7312-4e0a-82e4-5533ef0a3152": true}, "global-cdn": true, "has_dismissed_upgrade_https": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1408746146, "modified": 1447959323, "maxdevsites": 43, "organization": "Cellar Door Media"}, "id": "8d4e19a4-0bad-4301-8838-b392caee5584", "email": "chris.teitzel@gmail.com"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 13, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": true, "is_up_to_date_with_upstream": true}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {"has_code": true, "is_up_to_date_with_upstream": true}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "us-central1-b", "purchased_at": 1548457521, "framework": "drupal", "preferred_zone_label": "United States", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "8d4e19a4-0bad-4301-8838-b392caee5584", "attributes": {"m3_ui": true, "use_url_signer": true, "label": "Lockr Accounts D7"}, "holder": {"profile": {"invites_to_nonuser": 13, "devsites": 2, "experiments": {}, "full_name": "Chris Teitzel", "pullFromLive": false, "initial_identity_strategy": null, "tracking_first_site_create": 1408489030, "tracking_first_code_push": 1408602236, "invites_to_user": 31, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1408746210, "tracking_first_team_invite": 1409243794, "google_adwords_pushed_code_sent": 1408746146, "firstname": "Chris", "invites_to_site": 44, "lastname": "Teitzel", "copyCodeUpdatePhp": false, "phone": "(757) 636-7139", "last-org-spinup": "6c051857-6af2-4c77-92ae-26a336af44ec", "web_services_business": true, "initial_identity_name": null, "created_organization_name": "HopeOneSource", "copyCodeClearCache": false, "guilty_of_abuse": false, "invites_sent": 44, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1408583851, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "skip-cms-installation": {"78feb702-e710-44e0-b07f-0558c16ec2d7": true, "b8e19e80-0994-4c36-8439-a7e3037bb7b9": true, "779f3a61-7312-4e0a-82e4-5533ef0a3152": true}, "global-cdn": true, "has_dismissed_upgrade_https": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1408746146, "modified": 1447959323, "maxdevsites": 43, "organization": "Cellar Door Media"}, "id": "8d4e19a4-0bad-4301-8838-b392caee5584", "email": "chris.teitzel@gmail.com"}, "id": "78d45b10-9189-49e1-9d7c-7754b706bcfb", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2019-06-07T21:57:55", "user_uuid": "8d4e19a4-0bad-4301-8838-b392caee5584"}, "created_by_user_id": "374840cd-8543-4aeb-866f-f7baabcff499", "holder_id": "8d4e19a4-0bad-4301-8838-b392caee5584", "name": "lockr-accounts-d7", "created": 1541006490, "drush_version": 8, "current_num_domains": 2, "instrument": "74a0cc22-e766-3090-9715-1f7f523faba7", "holder_type": "user", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "php_version": "55", "site_routing_to_legacy_edge": false, "allow_cacheserver": true, "organization": "6c051857-6af2-4c77-92ae-26a336af44ec", "plan_name": "Basic", "service_level_updated_at": 1548457521}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "7b866d0d-ad7b-4b66-882d-524838b6fc95", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "7b866d0d-ad7b-4b66-882d-524838b6fc95", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b4e3fe63-1f94-4387-9b9c-e64329a2a0d7", "product": {"id": "8a129104-9d37-4082-aaf8-e6f31154644e", "longname": "Drupal 8"}, "service_level": "elite", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1467762749, "invites_to_nonuser": 1, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Benjamin Zarzycki", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 3, "google_adwords_paid_for_site_do_send": null, "verify": 1, "invites_to_user": 2, "registration_context": null, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1467763555, "google_adwords_account_registered_do_send": null, "firstname": "Benjamin", "utm_term": "", "lastname": "Zarzycki", "pda_campaign": null, "copyCodeUpdatePhp": false, "utm_source": "", "google_adwords_paid_for_site_sent": 1467763821, "tracking_first_site_create": 1467762341, "initial_identity_name": null, "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1467763534, "seens": {"cms-installation": true, "partner-program": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "skip-cms-installation": {"454c38a6-91a1-4887-8bf5-941dee643e46": true, "359a4814-afeb-4e2b-91bc-595fbfad0ef7": true, "12d63632-fe5a-4a7a-ab8d-877e27ab7b30": true}}, "dtl": "", "modified": 1467760978, "maxdevsites": 99999, "google_adwords_account_registered_sent": 1467760981, "organization": "Pantheon"}, "id": "b4e3fe63-1f94-4387-9b9c-e64329a2a0d7", "email": "benjamin.zarzycki@getpantheon.com"}, "preferred_zone_label": "United States", "preferred_availability_zone": "us-central1-c", "purchased_at": 1543524023, "framework": "drupal8", "organization": "770d940c-db89-4e55-91d3-d4a636e402d5", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "owner": "b4e3fe63-1f94-4387-9b9c-e64329a2a0d7", "attributes": {"m3_ui": true, "dr_enabled": true, "use_url_signer": true, "label": "dr-site-super-demo"}, "holder": {"profile": {"machine_name": null, "change_service_url": "", "name": "Athena of Pantheon", "email_domain": null, "base_domain": null, "billing_url": "", "terms_of_service": ""}, "id": "770d940c-db89-4e55-91d3-d4a636e402d5"}, "id": "7b866d0d-ad7b-4b66-882d-524838b6fc95", "preferred_zone": "us-central1", "last_code_push": {"timestamp": "2018-11-30T00:07:54", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}, "created_by_user_id": "b4e3fe63-1f94-4387-9b9c-e64329a2a0d7", "holder_id": "770d940c-db89-4e55-91d3-d4a636e402d5", "name": "dr-site-super-demo", "created": 1543450542, "drush_version": 8, "current_num_domains": 1, "upstream_updates_by_environment": {"remote_head": "03cb791183795fafbeefd0b1a3b77805fa44a0f2", "ahead": 7, "remote_branch": "refs/remotes/origin/master", "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 20, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-8.git"}, "instrument": "c9f1d4ad-cc23-4e7b-85e9-dcab6a6401b3", "holder_type": "organization", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "php_version": "55", "site_routing_to_legacy_edge": false, "preferred_dr_availability_zone": "us-central1-a", "plan_name": "Elite", "service_level_updated_at": 1555589918}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "7e324ba5-db9a-4f8c-8038-5ec708cf3b8c", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "7e324ba5-db9a-4f8c-8038-5ec708cf3b8c", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "australia-southeast1-b", "framework": "drupal", "preferred_zone_label": "Australia", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "my-kanga-site"}, "id": "7e324ba5-db9a-4f8c-8038-5ec708cf3b8c", "preferred_zone": "australia-southeast1", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "my-kanga-site", "created": 1560963477, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-19T16:59:48", "user_uuid": null}}}, {"archived": false, "invited_by_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "role": "team_member", "id": "7ed6a12d-d3f1-4d96-b327-31ac7dc93199", "key": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site_id": "7ed6a12d-d3f1-4d96-b327-31ac7dc93199", "user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "site": {"user_in_charge_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "product": {"id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "longname": "Drupal 7"}, "service_level": "free", "user_in_charge": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"cms-installation": true, "annual-billing": true, "global-cdn": true, "partner-program": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "upstream_updates_by_environment": {"remote_head": "f08818693e882ac1cfbbf3ad779ceeac93656837", "ahead": 2, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "preferred_availability_zone": "europe-west4-b", "framework": "drupal", "preferred_zone_label": "European Union", "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "branch": "master"}, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "attributes": {"m3_ui": true, "label": "my-alt-facts-site"}, "holder": {"profile": {"machine_name": null, "change_service_url": "", "name": "Pantheon Engineering Yolo Sites", "email_domain": null, "base_domain": null, "billing_url": "", "terms_of_service": ""}, "id": "e114eb3f-e07e-40da-b5ee-bef34b440690"}, "id": "7ed6a12d-d3f1-4d96-b327-31ac7dc93199", "preferred_zone": "europe-west4", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_id": "e114eb3f-e07e-40da-b5ee-bef34b440690", "name": "my-alt-facts-site", "created": 1560964244, "drush_version": 8, "instrument": "8653a477-a5ec-4112-8242-2553e475fdfd", "holder_type": "organization", "php_version": "55", "site_routing_to_legacy_edge": false, "organization": "e114eb3f-e07e-40da-b5ee-bef34b440690", "plan_name": "Sandbox", "last_code_push": {"timestamp": "2019-06-19T17:12:41", "user_uuid": null}}}]' diff --git a/tests/fixtures/aliases/drushrcEmitter/standardAliasFixtureWithoutDbUrl.out b/tests/fixtures/aliases/drushrcEmitter/standardAliasFixtureWithoutDbUrl.out deleted file mode 100644 index 36f6dd568..000000000 --- a/tests/fixtures/aliases/drushrcEmitter/standardAliasFixtureWithoutDbUrl.out +++ /dev/null @@ -1,42 +0,0 @@ - '${env-name}-personalsite.pantheonsite.io', - 'remote-host' => 'appserver.${env-name}.33333333-3333-3333-3333-333333333333.drush.in', - 'remote-user' => '${env-name}.33333333-3333-3333-3333-333333333333', - 'ssh-options' => '-p 2222 -o "AddressFamily inet"', - 'path-aliases' => array( - '%files' => 'files', - ), - ); - - $aliases['demo.*'] = array( - 'uri' => '${env-name}-demo.pantheonsite.io', - 'remote-host' => 'appserver.${env-name}.44444444-4444-4444-4444-444444444444.drush.in', - 'remote-user' => '${env-name}.44444444-4444-4444-4444-444444444444', - 'ssh-options' => '-p 2222 -o "AddressFamily inet"', - 'path-aliases' => array( - '%files' => 'files', - ), - ); - - $aliases['agency.*'] = array( - 'uri' => '${env-name}-agency.pantheonsite.io', - 'remote-host' => 'appserver.${env-name}.55555555-5555-5555-5555-555555555555.drush.in', - 'remote-user' => '${env-name}.55555555-5555-5555-5555-555555555555', - 'ssh-options' => '-p 2222 -o "AddressFamily inet"', - 'path-aliases' => array( - '%files' => 'files', - ), - ); diff --git a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/drush.yml b/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/drush.yml deleted file mode 100644 index d490419a8..000000000 --- a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/drush.yml +++ /dev/null @@ -1,9 +0,0 @@ -# Drush configuration file - -drush: - paths: - alias-path: - - '${env.home}/.drush/sites' - - '${env.home}/drush/sites/pantheon' - include: - - '${env.home}/.drush/pantheon' \ No newline at end of file diff --git a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/agency.site.yml b/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/agency.site.yml deleted file mode 100644 index 65106e070..000000000 --- a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/agency.site.yml +++ /dev/null @@ -1,9 +0,0 @@ -'*': - host: appserver.${env-name}.55555555-5555-5555-5555-555555555555.drush.in - paths: - files: files - uri: ${env-name}-agency.pantheonsite.io - user: ${env-name}.55555555-5555-5555-5555-555555555555 - ssh: - options: '-p 2222 -o "AddressFamily inet"' - tty: false diff --git a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/demo.site.yml b/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/demo.site.yml deleted file mode 100644 index a878bf3e0..000000000 --- a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/demo.site.yml +++ /dev/null @@ -1,9 +0,0 @@ -'*': - host: appserver.${env-name}.44444444-4444-4444-4444-444444444444.drush.in - paths: - files: files - uri: ${env-name}-demo.pantheonsite.io - user: ${env-name}.44444444-4444-4444-4444-444444444444 - ssh: - options: '-p 2222 -o "AddressFamily inet"' - tty: false diff --git a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/personalsite.site.yml b/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/personalsite.site.yml deleted file mode 100644 index 8653a3bc4..000000000 --- a/tests/fixtures/aliases/sitesYmlEmitter/standardWithoutDbUrl/sites/pantheon/personalsite.site.yml +++ /dev/null @@ -1,9 +0,0 @@ -'*': - host: appserver.${env-name}.33333333-3333-3333-3333-333333333333.drush.in - paths: - files: files - uri: ${env-name}-personalsite.pantheonsite.io - user: ${env-name}.33333333-3333-3333-3333-333333333333 - ssh: - options: '-p 2222 -o "AddressFamily inet"' - tty: false diff --git a/tests/fixtures/auth-login-machine-token-invalid.yml b/tests/fixtures/auth-login-machine-token-invalid.yml deleted file mode 100644 index 2d6102315..000000000 --- a/tests/fixtures/auth-login-machine-token-invalid.yml +++ /dev/null @@ -1,32 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Accept: null - body: '{"machine_token":"invalid","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '500' - message: 'Internal Server Error' - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:27 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '70' - Connection: keep-alive - X-Pantheon-Trace-Id: f71aff80-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '"Authorization failed. Please check that your machine token is valid."' diff --git a/tests/fixtures/auth-login.yml b/tests/fixtures/auth-login.yml deleted file mode 100644 index 2f8e6f567..000000000 --- a/tests/fixtures/auth-login.yml +++ /dev/null @@ -1,64 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' diff --git a/tests/fixtures/auth-logout.yml b/tests/fixtures/auth-logout.yml deleted file mode 100644 index e3e476ed1..000000000 --- a/tests/fixtures/auth-logout.yml +++ /dev/null @@ -1,64 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:30 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f7c940e0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f8f16e3e-6403-11e6-87eb-bc764e11bdd3:GEmF1B1TFimZZjcmjmvNd","expires_at":1473807090,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f8f16e3e-6403-11e6-87eb-bc764e11bdd3:GEmF1B1TFimZZjcmjmvNd' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:31 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f933a650-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' diff --git a/tests/fixtures/auth-whoami.yml b/tests/fixtures/auth-whoami.yml deleted file mode 100644 index 76d94c6f2..000000000 --- a/tests/fixtures/auth-whoami.yml +++ /dev/null @@ -1,66 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fcaa74c6-6403-11e6-bf57-bc764e105ecb:vYnPJtXqYYhv09Cso9gD4' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:39 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fd68eb90-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN","expires_at":1473807099,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:40 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: fe824ad0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' diff --git a/tests/fixtures/autoload/README.md b/tests/fixtures/autoload/README.md deleted file mode 100644 index 49784964b..000000000 --- a/tests/fixtures/autoload/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Plugin autoload test fixtures - -These fixtures are used by the plugin autoload unit tests, which test the result of calling the various autoload methods directly. diff --git a/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.json b/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.json deleted file mode 100644 index 93e0f54da..000000000 --- a/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "org/conflicting-dependencies-plugin", - "require": { - "consolidation/log": "^1.0" - } -} diff --git a/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.lock b/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.lock deleted file mode 100644 index 637204af3..000000000 --- a/tests/fixtures/autoload/plugins/conflicting-dependencies/composer.lock +++ /dev/null @@ -1,291 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "content-hash": "10ca878e144ea0d7a8e2eb1108babe9c", - "packages": [ - { - "name": "consolidation/log", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/consolidation/log.git", - "reference": "74ba81b4edc585616747cc5c5309ce56fec41254" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/74ba81b4edc585616747cc5c5309ce56fec41254", - "reference": "74ba81b4edc585616747cc5c5309ce56fec41254", - "shasum": "" - }, - "require": { - "php": ">=5.5.0", - "psr/log": "~1.0", - "symfony/console": "~2.5|~3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "squizlabs/php_codesniffer": "2.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "time": "2016-03-23T23:46:42+00:00" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10T12:19:37+00:00" - }, - { - "name": "symfony/console", - "version": "v3.2.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "0e5e6899f82230fcb1153bcaf0e106ffaa44b870" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0e5e6899f82230fcb1153bcaf0e106ffaa44b870", - "reference": "0e5e6899f82230fcb1153bcaf0e106ffaa44b870", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/filesystem": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2017-02-16T14:07:22+00:00" - }, - { - "name": "symfony/debug", - "version": "v3.2.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "9b98854cb45bc59d100b7d4cc4cf9e05f21026b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9b98854cb45bc59d100b7d4cc4cf9e05f21026b9", - "reference": "9b98854cb45bc59d100b7d4cc4cf9e05f21026b9", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/class-loader": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2017-02-16T16:34:18+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4", - "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2016-11-14T01:06:16+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -} diff --git a/tests/fixtures/autoload/plugins/conflicting-dependencies/src/Commands/NullCommand.php b/tests/fixtures/autoload/plugins/conflicting-dependencies/src/Commands/NullCommand.php deleted file mode 100644 index f8486c278..000000000 --- a/tests/fixtures/autoload/plugins/conflicting-dependencies/src/Commands/NullCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -=5.5.0", - "psr/log": "~1.0", - "symfony/console": "~2.5|~3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "squizlabs/php_codesniffer": "2.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "time": "2016-03-23T23:46:42+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -} diff --git a/tests/fixtures/autoload/plugins/nested-dependencies/src/Commands/NullCommand.php b/tests/fixtures/autoload/plugins/nested-dependencies/src/Commands/NullCommand.php deleted file mode 100644 index f8486c278..000000000 --- a/tests/fixtures/autoload/plugins/nested-dependencies/src/Commands/NullCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -Gandi Domain Configuration guide for help configuring DNS records for this domain.", "dns_provider": "Gandi", "HasSomeMatching": true, "dns_records": [{"status": "okay", "status_message": "Correct value detected", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io", "detected_value": "live-behat-tests.pantheonsite.io"}]}, "RecheckCount": 0, "target_dns": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "EnvStyxClusterRecords": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "debug_messages": null, "EnvPlatformDomainRecords": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "ownership_status": {"status": "completed", "message": "Ownership check completed", "verification_file_name": "", "verification_file_link": ""}, "statuses": [{"status": "okay", "message": "", "type": "dns", "alert": {"body": "See our performance guide for best practices to boost your sites performance.", "header": "DNS pointing successfully at Pantheon\u2019s Global CDN"}}, {"status": "okay", "message": "Let\u2019s Encrypt certificate deployed to Pantheon\u2019s Global CDN. Certificate renews automatically with no additional cost.", "type": "https", "alert": {"body": "", "header": ""}}]}, {"dns_zone_name": "", "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "custom", "id": "behat-tests.me", "key": "behat-tests.me", "status": "okay", "status_message": "Launched", "deletable": true, "routing_status_details": {"routes_to_legacy_edge": false}, "service_level": "pro", "dns_status_details": {"HasLegacyRecords": false, "public_resolver_matches": [{"Address": "208.67.222.222", "Match": true, "Provider": "OpenDNS"}, {"Address": "209.244.0.3", "Match": true, "Provider": "Level3"}], "help_message": "We detected Gandi as the DNS provider for this domain. View our Gandi Domain Configuration guide for help configuring DNS records for this domain.", "dns_provider": "Gandi", "HasSomeMatching": true, "dns_records": [{"status": "okay", "status_message": "Correct value detected", "type": "A", "target_value": "23.185.0.2", "detected_value": "23.185.0.2"}, {"status": "okay", "status_message": "Correct value detected", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": "2620:12a:8000::2"}, {"status": "okay", "status_message": "Correct value detected", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": "2620:12a:8001::2"}]}, "RecheckCount": 0, "target_dns": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "EnvStyxClusterRecords": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "debug_messages": null, "EnvPlatformDomainRecords": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "ownership_status": {"status": "completed", "message": "Ownership check completed", "verification_file_name": "", "verification_file_link": ""}, "statuses": [{"status": "okay", "message": "", "type": "dns", "alert": {"body": "See our performance guide for best practices to boost your sites performance.", "header": "DNS pointing successfully at Pantheon\u2019s Global CDN"}}, {"status": "okay", "message": "Let\u2019s Encrypt certificate deployed to Pantheon\u2019s Global CDN. Certificate renews automatically with no additional cost.", "type": "https", "alert": {"body": "", "header": ""}}]}, {"dns_zone_name": "pantheonsite.io", "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "live-behat-tests.pantheonsite.io", "key": "live-behat-tests.pantheonsite.io", "status": "ok", "status_message": "Launched", "deletable": false}]' diff --git a/tests/fixtures/domain-list-empty.yml b/tests/fixtures/domain-list-empty.yml deleted file mode 100644 index 83478cd47..000000000 --- a/tests/fixtures/domain-list-empty.yml +++ /dev/null @@ -1,188 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2d6a7bf0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Content-Length: '3582' - Connection: keep-alive - X-Pantheon-Trace-Id: 2da254d0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2ddd3af0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/live/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:07 GMT' - Content-Type: application/json - Content-Length: '431' - Connection: keep-alive - X-Pantheon-Trace-Id: 2e3ff460-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/domain-list.yml b/tests/fixtures/domain-list.yml deleted file mode 100644 index 64db69a8e..000000000 --- a/tests/fixtures/domain-list.yml +++ /dev/null @@ -1,188 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2d6a7bf0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Content-Length: '3582' - Connection: keep-alive - X-Pantheon-Trace-Id: 2da254d0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2ddd3af0-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "pantheonsite.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/live/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2d071a1a-698c-11e6-9f69-bc764e11227e:uEbeffUd03C0QQHEjyuZH' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:49:07 GMT' - Content-Type: application/json - Content-Length: '431' - Connection: keep-alive - X-Pantheon-Trace-Id: 2e3ff460-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": null, "environment": "live", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "type": "custom", "id": "testdomain.com", "key": "testdomain.com", "deletable": true}, {"dns_zone_name": "pantheonsite.io", "environment": "live", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "type": "platform", "id": "live-behat-tests.pantheonsite.io", "key": "live-behat-tests.pantheonsite.io", "deletable": false}]' diff --git a/tests/fixtures/domain-lookup.yml b/tests/fixtures/domain-lookup.yml deleted file mode 100644 index 3962c94b3..000000000 --- a/tests/fixtures/domain-lookup.yml +++ /dev/null @@ -1,376 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:53:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bc121b60-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:53:05 GMT' - Content-Type: application/json - Content-Length: '3582' - Connection: keep-alive - X-Pantheon-Trace-Id: bc49a620-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:53:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bc846530-698c-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:37 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5e362210-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "service_level": "business", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "upstream_updates_by_environment": {"remote_head": "99d9779d7924d37be5750954b774ec786a95e5e0", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 2, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "purchased_at": 1471990537, "framework": "wordpress", "cost": 400, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "11111111-1111-1111-1111-111111111111", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "instrument": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "php_version": "55", "attributes": {"label": "Behat Tests"}, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5e9a8930-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5edb62c0-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: GET - url: 'https://onebox/api/organizations/8bc110ff-6ee5-480a-ae4e-065593aea70a/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5f158590-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:39 GMT' - Content-Type: application/json - Content-Length: '243' - Connection: keep-alive - X-Pantheon-Trace-Id: 5f546350-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": "onebox.pantheon.io", "environment": "dev", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "dev-behat-tests.onebox.pantheon.io", "key": "dev-behat-tests.onebox.pantheon.io", "deletable": false}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:39 GMT' - Content-Type: application/json - Content-Length: '246' - Connection: keep-alive - X-Pantheon-Trace-Id: 5f8ead30-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": "onebox.pantheon.io", "environment": "test", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "test-behat-tests.onebox.pantheon.io", "key": "test-behat-tests.onebox.pantheon.io", "deletable": false}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:bbb27764-698c-11e6-94c2-bc764e11227e:3fUgvzFCPXG1LGwQj68tV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:57:40 GMT' - Content-Type: application/json - Content-Length: '431' - Connection: keep-alive - X-Pantheon-Trace-Id: 5fc94530-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": null, "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "custom", "id": "testdomain.com", "key": "testdomain.com", "deletable": true}, {"dns_zone_name": "onebox.pantheon.io", "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "live-behat-tests.onebox.pantheon.io", "key": "live-behat-tests.onebox.pantheon.io", "deletable": false}]' diff --git a/tests/fixtures/domain-primary-add.yml b/tests/fixtures/domain-primary-add.yml deleted file mode 100644 index 9dd1f0701..000000000 --- a/tests/fixtures/domain-primary-add.yml +++ /dev/null @@ -1,223 +0,0 @@ - -- - 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/fixtures/domain-remove.yml b/tests/fixtures/domain-remove.yml deleted file mode 100644 index dcb3906f0..000000000 --- a/tests/fixtures/domain-remove.yml +++ /dev/null @@ -1,220 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:00 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6be517e0-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:00 GMT' - Content-Type: application/json - Content-Length: '3582' - Connection: keep-alive - X-Pantheon-Trace-Id: 6c1d8d00-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6c5a20d0-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/live/domains?hydrate=' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:01 GMT' - Content-Type: application/json - Content-Length: '431' - Connection: keep-alive - X-Pantheon-Trace-Id: 6cbed610-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": null, "environment": "live", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "type": "custom", "id": "testdomain.com", "key": "testdomain.com", "deletable": true}, {"dns_zone_name": "onebox.pantheon.io", "environment": "live", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "type": "platform", "id": "live-behat-tests.onebox.pantheon.io", "key": "live-behat-tests.onebox.pantheon.io", "deletable": false}]' -- - request: - method: DELETE - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/live/domains/testdomain.com' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6b87b9f6-698d-11e6-94c2-bc764e11227e:9VEiWOV4ddAoOhLkh8foO' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:02 GMT' - Content-Type: text/html - Content-Length: '4' - Connection: keep-alive - X-Pantheon-Trace-Id: 6cf7c060-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '"Ok"' diff --git a/tests/fixtures/drush.yml b/tests/fixtures/drush.yml deleted file mode 100644 index 9c5fcce45..000000000 --- a/tests/fixtures/drush.yml +++ /dev/null @@ -1,290 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:21:44 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: ff1e07f0-87d9-11e6-9000-e92c9f5b92bb - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9","expires_at":1477747304,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:21:45 GMT' - Content-Type: application/json - Content-Length: '3395' - Connection: keep-alive - X-Pantheon-Trace-Id: ffd57110-87d9-11e6-b6c8-c7e86baf4b9b - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1425937227, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Adam Barry", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 8, "verify": 1, "tracking_first_code_push": 1426011230, "google_adwords_account_registered_sent": 1425936337, "invites_to_user": 6, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1426013115, "tracking_first_team_invite": 1446074374, "firstname": "Adam", "invites_to_site": 5, "lastname": "Barry", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1426019476, "last-org-spinup": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "tracking_first_site_create": 1426005794, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1429228569, "google_adwords_paid_for_site_sent": 1429228664, "modified": 1442611772, "maxdevsites": 2, "lead_type": "", "organization": "Pantheon Systems"}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1425936291, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:21:47 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 00fefcf0-87da-11e6-adfd-7ff44164a2a3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "84c30d30-e6dd-4354-b8f4-3114d3ccaa51", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/84c30d30-e6dd-4354-b8f4-3114d3ccaa51?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:21:49 GMT' - Content-Type: application/json - Content-Length: '80227' - Connection: keep-alive - X-Pantheon-Trace-Id: 0233fa80-87da-11e6-9000-e92c9f5b92bb - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": true, "allow_indexserver": true, "created": 1475322103, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal8", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2016-10-01T12:03:37", "user_uuid": null}, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "purchased_at": 1475322410, "service_level": "pro", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "label": "behat-tests", "id": "84c30d30-e6dd-4354-b8f4-3114d3ccaa51", "holder": {"base_domain": null, "change_management": true, "email_domain": null, "experimental_agency_organization": "no", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "maxdevsites": "20", "multidev": true, "name": "Organization Name", "requires_onboarding": false, "secure_runtime_access_enableable": true, "service_level": "pantheon_one", "show_org_name_header": "yes", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "machine_name": "pantheon-employees", "has_multidev": false, "support_plan": "regular_support", "has_change_management": false, "profile": {"machine_name": "pantheon-employees", "change_service_url": null, "name": "Organization Name", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "settings": {"service_level": "pantheon_one", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "label": "behat-tests", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "min_backups": 0, "service_level": "pro", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1475322410, "framework": "drupal8", "upstream": {"url": "https://github.com/pantheon-systems/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "allow_indexserver": true, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1475322103, "max_backups": 7, "holder_type": "organization", "number_allow_domains": 200, "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-10-01T12:03:37", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat-tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/84c30d30-e6dd-4354-b8f4-3114d3ccaa51/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:21:50 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 02f0bad0-87da-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"live": {"environment_created": 1475322106, "dns_zone": "pantheonsite.io", "randseed": "5EW77C0RXR79QR1WI2TJ8ET9VDJFVETW", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-02.pantheon.io"}, "test": {"environment_created": 1475322105, "dns_zone": "pantheonsite.io", "randseed": "SWF8W1IRIOTYM0NHQWXGRRC02W65KYID", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-01.pantheon.io"}, "branch": {"environment_created": 1475323212, "dns_zone": "pantheonsite.io", "randseed": "ELIMFP0CIBW5FI3AX1GY1S0QDS933AOG", "target_ref": "refs/heads/branch", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "17ce165ab642e215ddd0b06221f16c911f4fb033", "styx_cluster": "styx-02.pantheon.io"}, "dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1475322103, "dns_zone": "pantheonsite.io", "randseed": "LD2L22PMKF4G5UOME63BVBH92M1B4PTK", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "d99a3df2575135bb23a3df7b48d81479264aa85d", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://dashboard.pantheon.io/api/authorize/machine-token' - headers: - Host: dashboard.pantheon.io - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ff6b4452-87d9-11e6-901d-bc764e105ecb:EV9tnd4PAyXXqiMFCigE9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"rkA9hXD6wO90vD1e50KxMohS7eBjsffyiRPAwQmWIsqUp","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:31:49 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 67e22400-87db-11e6-b6c8-c7e86baf4b9b - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"920f16d3-8272-4822-9811-1d5d3e125e6f:68354ec8-87db-11e6-90fb-bc764e10d7c2:bimhEr1StoIKdyLK5TEzw","expires_at":1477747909,"user_id":"920f16d3-8272-4822-9811-1d5d3e125e6f"}' -- - request: - method: GET - url: 'https://dashboard.pantheon.io/api/users/920f16d3-8272-4822-9811-1d5d3e125e6f' - headers: - Host: dashboard.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:68354ec8-87db-11e6-90fb-bc764e10d7c2:bimhEr1StoIKdyLK5TEzw' - headers: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:68354ec8-87db-11e6-90fb-bc764e10d7c2:bimhEr1StoIKdyLK5TEzw' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:31:50 GMT' - Content-Type: application/json - Content-Length: '3395' - Connection: keep-alive - X-Pantheon-Trace-Id: 688e6990-87db-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1425937227, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Adam Barry", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 8, "verify": 1, "tracking_first_code_push": 1426011230, "google_adwords_account_registered_sent": 1425936337, "invites_to_user": 6, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1426013115, "tracking_first_team_invite": 1446074374, "firstname": "Adam", "invites_to_site": 5, "lastname": "Barry", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1426019476, "last-org-spinup": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "tracking_first_site_create": 1426005794, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1429228569, "google_adwords_paid_for_site_sent": 1429228664, "modified": 1442611772, "maxdevsites": 2, "lead_type": "", "organization": "Pantheon Systems"}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "created_at": 1425936291, "dev_sites_count": 1, "id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "adam@getpantheon.com"}' -- - request: - method: GET - url: 'https://dashboard.pantheon.io/api/site-names/drupal-vcr' - headers: - Host: dashboard.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:68354ec8-87db-11e6-90fb-bc764e10d7c2:bimhEr1StoIKdyLK5TEzw' - headers: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:68354ec8-87db-11e6-90fb-bc764e10d7c2:bimhEr1StoIKdyLK5TEzw' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 13:31:52 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 69ecc110-87db-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "84c30d30-e6dd-4354-b8f4-3114d3ccaa51", "name": "drupal-vcr"}' diff --git a/tests/fixtures/env-cache-clear.yml b/tests/fixtures/env-cache-clear.yml deleted file mode 100644 index d5212b770..000000000 --- a/tests/fixtures/env-cache-clear.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0bac320c-6599-11e6-b6bb-bc764e1022a9:ciw7GSnSQEHUVDObqAi6v' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0bac320c-6599-11e6-b6bb-bc764e1022a9:ciw7GSnSQEHUVDObqAi6v' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 23a040e0-659b-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD","expires_at":1473981968,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:08 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 246bf550-659b-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:09 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 24e4ced0-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:11 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 251e2e50-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:12 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 267c85d0-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"clear_cache","params":{"framework_cache":true}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 26f78230-659b-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "26f78230-659b-11e6-96e6-818700c33129", "params": {"framework_cache": true}, "task_ids": ["2705be18-659b-11e6-badc-bc764e11bdd3", "27077500-659b-11e6-badc-bc764e11bdd3", "2708e19c-659b-11e6-badc-bc764e11bdd3"], "role": "owner", "type": "clear_cache", "id": "26fee174-659b-11e6-badc-bc764e11bdd3", "key": "1471561200", "waiting_for_task_id": "2705be18-659b-11e6-badc-bc764e11bdd3", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471562772.995314, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Clear cache for \"dev\"", "description": "Clear cache for \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:26f78230-659b-11e6-96e6-818700c33129%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:21:12.995314Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "endpoint_clear_framework_cache", "job_id": "2705be18-659b-11e6-badc-bc764e11bdd3", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "26f78230-659b-11e6-96e6-818700c33129", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "26fee174-659b-11e6-badc-bc764e11bdd3", "id": "2705be18-659b-11e6-badc-bc764e11bdd3", "key": "1471561200", "responses": [], "queued_time": null, "host": "23.253.170.86", "result": null, "phase": "created", "created_at": 1471562773.040284, "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:26f78230-659b-11e6-96e6-818700c33129%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:21:13.040284Z%27,mode:quick,to:%27now%27))", "type": "endpoint_clear_framework_cache", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/26fee174-659b-11e6-badc-bc764e11bdd3' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:241b9218-659b-11e6-9d0d-bc764e1141f9:PDBA9a3j7QNI09NJXMLcD' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:26:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 280c4d90-659b-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"framework_cache": true}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471562773.117953, "task_ids": ["2705be18-659b-11e6-badc-bc764e11bdd3", "27077500-659b-11e6-badc-bc764e11bdd3", "2708e19c-659b-11e6-badc-bc764e11bdd3"], "trace_id": "26f78230-659b-11e6-96e6-818700c33129", "type": "clear_cache", "user_id": "11111111-1111-1111-1111-111111111111", "id": "26fee174-659b-11e6-badc-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "2705be18-659b-11e6-badc-bc764e11bdd3", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471562772.995314, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Clearing caches for \"dev\"", "description": "Clear cache for \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:26f78230-659b-11e6-96e6-818700c33129%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:21:12.995314Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/endpoint_clear_framework_cache/1069/", "number": 1069, "phase": "STARTED", "estimated_duration": 1303, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/endpoint_clear_framework_cache/1069/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "endpoint_clear_framework_cache", "job_id": "2705be18-659b-11e6-badc-bc764e11bdd3", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "queued_at": 1471562773.11827, "responses": [{"code": 201, "body": "Successfully queued endpoint_clear_framework_cache", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471562774.361287, "trace_id": "26f78230-659b-11e6-96e6-818700c33129", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "26fee174-659b-11e6-badc-bc764e11bdd3", "id": "2705be18-659b-11e6-badc-bc764e11bdd3", "key": "1471561200", "queued_time": 1.2430171966552734, "host": "23.253.170.86", "result": null, "phase": "started", "created_at": 1471562773.040284, "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:26f78230-659b-11e6-96e6-818700c33129%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:21:13.040284Z%27,mode:quick,to:%27now%27))", "type": "endpoint_clear_framework_cache", "build_url": "https://23.253.170.86:8090/jenkins/job/endpoint_clear_framework_cache/1069/", "messages": {"2016-08-18T23:26:14.934247": {"message": "Successfully queued endpoint_clear_framework_cache", "level": "INFO"}}}}' diff --git a/tests/fixtures/env-clone-from-uninitialized.yml b/tests/fixtures/env-clone-from-uninitialized.yml deleted file mode 100644 index 91629ee27..000000000 --- a/tests/fixtures/env-clone-from-uninitialized.yml +++ /dev/null @@ -1,406 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - method: post - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 528960d0-659b-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc","expires_at":1473982046,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:27 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 5329e690-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:28 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 53c16ba0-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:28 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 53fd1510-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:29 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 54579120-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - headers: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' -- - request: - method: POST - url: 'https://terminus.pantheon.io/api/authorize/machine-token' - headers: - Host: terminus.pantheon.io - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:8c9b8534-24eb-11e9-a264-42010a800117:CnKbfhcgP9NA3MxS3jnQ6' - Accept: null - body: '{"machine_token":"fAXbD1WReYpGXCLJlwicIL4Z6QEHbdye0qlgSIxtRjrck","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:04:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: d9523a30-24eb-11e9-82d4-adc2781034e6 - 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":"3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV","expires_at":1551312299,"user_id":"3a1d2042-cca3-432e-94c4-12a8f2b6a950"}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/site-names/site-to-be-deleted' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d9fe0a90-24eb-11e9-8b0d-8331b2b07b80 - 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": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "name": "site-to-be-deleted"}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f?site_state=true' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:00 GMT' - Content-Type: application/json - Content-Length: '4115' - Connection: keep-alive - X-Pantheon-Trace-Id: da340eb0-24eb-11e9-9e99-5738d1355c4e - 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": 1548892704, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "drush_version": 8, "framework": "drupal8", "holder_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "holder_type": "user", "last_code_push": {"timestamp": "2019-01-30T23:59:35", "user_uuid": null}, "name": "site-to-be-deleted", "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-c", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "drupal8", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "url": "https://github.com/pantheon-systems/drops-8.git", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "branch": "master", "repository_url": "https://github.com/pantheon-systems/drops-8.git", "type": "core", "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, "label": "Site to be deleted", "id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 3, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 27, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 24, "registration_context": null, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Sara", "invites_to_site": 22, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 5, "tracking_first_site_upgrade": 1433800858, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "terminus-1": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "skip-cms-installation": {"b774bb32-81f1-42f3-832a-61aae89ad421": true}}, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "email": "sara@getpantheon.com"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-c", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "stunnel": false, "min_backups": 0, "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": false, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "on_server_development": false, "drush_version": 8, "migration_method": null, "current_num_domains": 0, "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/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "framework": "drupal8", "max_total_domains": 0, "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "name": "site-to-be-deleted", "created": 1548892704, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2019-01-30T23:59:35", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Site to be deleted", "m3_ui": true}, "add_ons": []}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: daabfdd0-24eb-11e9-b6d7-d3d25de97ea7 - 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": 1548892706, "environment_variables": {"php_version": 7.2}, "php_version": "72", "randseed": "V1DG167GHLIMJKWFYJPGD2NKMFODP7CX", "styx_cluster": "styx-fe3.pantheon.io", "target_commit": "7509c15acb86b1d47216123810b63b1bfa22fe39", "target_ref": "refs/tags/pantheon_test_1", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!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-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "live": {"dns_zone": "pantheonsite.io", "environment_created": 1548892707, "randseed": "BGJ75HMOQDMZLI1BXEABL0D5HIYSXIHD", "styx_cluster": "styx-fe3.pantheon.io", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!live", "environment_variables": {}, "php_version": "55", "is_initialized": false, "styx_clusters_for_cache_clear": ["styx-fe3-europe-west4.pantheon.io", "styx-fe4-europe-west4.pantheon.io", "edge.live.getpantheon.com", "styx-fe2-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "dev": {"dns_zone": "pantheonsite.io", "environment_created": 1548892704, "environment_variables": {"php_version": 7.2}, "on_server_development": true, "php_version": "72", "quicksilver_configuration": {}, "randseed": "LYD9LE00GF7H5JVEQ6EKB38RI0LCVA7T", "styx_cluster": "styx-fe3.pantheon.io", "target_commit": "7509c15acb86b1d47216123810b63b1bfa22fe39", "target_ref": "refs/heads/master", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!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-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments/test/code-log' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:02 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: dae0f080-24eb-11e9-b625-83398e3fdcc8 - 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: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "7509c15acb86b1d47216123810b63b1bfa22fe39", "author": "Root", "labels": ["test", "dev"], "datetime": "2019-01-30T23:59:34", "parents": ["60233e2657b19c9360b862cb496bb39f43dbe2f7"], "message": "\"Applying pantheon.yml file\"\n", "email": "root@getpantheon.com"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "60233e2657b19c9360b862cb496bb39f43dbe2f7", "author": "Root", "labels": ["test", "dev"], "datetime": "2019-01-30T23:59:31", "parents": ["d259ee8acffe7bb6905851b844ca894056d2ee94"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: POST - url: 'https://terminus.pantheon.io/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments/dev/workflows' - headers: - Host: terminus.pantheon.io - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - body: '{"type":"clone_database","params":{"from_environment":"test","clear_cache":false,"updatedb":0}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:02 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: db171bb0-24eb-11e9-b625-83398e3fdcc8 - 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": "dev", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "db171bb0-24eb-11e9-b625-83398e3fdcc8", "params": {"updatedb": 0, "from_environment": "test", "clear_cache": false}, "task_ids": ["db226218-24eb-11e9-a752-42010a800153"], "role": "owner", "type": "clone_database", "id": "db2004aa-24eb-11e9-a752-42010a800153", "key": "1548892800", "waiting_for_task_id": "db226218-24eb-11e9-a752-42010a800153", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1548893102.373393, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Clone database to \"dev\"", "description": "Clone database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:db171bb0-24eb-11e9-b625-83398e3fdcc8%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:00:02.373393Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "auth0_user_id": "samlp|sara@getpantheon.com", "created_at": 1433793438, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "sara@getpantheon.com"}, "user_email": "sara@getpantheon.com", "waiting_for_task": {"environment": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548893102.451694, "params": {"task_type": "ellis_clone_database", "updatedb": 0, "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com", "job_id": "db226218-24eb-11e9-a752-42010a800153"}, "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "db171bb0-24eb-11e9-b625-83398e3fdcc8", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "workflow_id": "db2004aa-24eb-11e9-a752-42010a800153", "id": "db226218-24eb-11e9-a752-42010a800153", "key": "1548892800", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "initialized", "created_at": 1548893102.388892, "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:db171bb0-24eb-11e9-b625-83398e3fdcc8%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:00:02.388892Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_database", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/workflows/db2004aa-24eb-11e9-a752-42010a800153' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 3a1d2042-cca3-432e-94c4-12a8f2b6a950:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:05:02 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: db562080-24eb-11e9-b9b2-91124e575422 - 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": "dev", "params": {"updatedb": 0, "from_environment": "test", "clear_cache": false}, "role": "owner", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548893102.451274, "task_ids": ["db226218-24eb-11e9-a752-42010a800153"], "trace_id": "db171bb0-24eb-11e9-b625-83398e3fdcc8", "type": "clone_database", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "id": "db2004aa-24eb-11e9-a752-42010a800153", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "waiting_for_task_id": "db226218-24eb-11e9-a752-42010a800153", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1548893102.373393, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Cloning database from \"test\" to \"dev\"", "description": "Clone database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:db171bb0-24eb-11e9-b625-83398e3fdcc8%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:00:02.373393Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "auth0_user_id": "samlp|sara@getpantheon.com", "created_at": 1433793438, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "sara@getpantheon.com"}, "user_email": "sara@getpantheon.com", "waiting_for_task": {"build": {"url": "job/ellis_clone_database/1015779/", "number": 1015779, "phase": "STARTED", "estimated_duration": 8972, "duration": 0, "full_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_database/1015779/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548893102.451694, "params": {"task_type": "ellis_clone_database", "updatedb": 0, "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com", "job_id": "db226218-24eb-11e9-a752-42010a800153"}, "queued_at": 1548893102.458207, "responses": [{"code": 201, "body": "Successfully queued ellis_clone_database", "error_details": "", "internal_reason": ""}], "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548893102.558725, "trace_id": "db171bb0-24eb-11e9-b625-83398e3fdcc8", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "workflow_id": "db2004aa-24eb-11e9-a752-42010a800153", "id": "db226218-24eb-11e9-a752-42010a800153", "key": "1548892800", "queued_time": 0.10051822662353516, "host": "ellis.live.getpantheon.com", "result": null, "phase": "started", "created_at": 1548893102.388892, "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:db171bb0-24eb-11e9-b625-83398e3fdcc8%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:00:02.388892Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_database", "build_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_database/1015779/", "messages": {"2019-01-31T00:05:02.977456": {"message": "Successfully queued ellis_clone_database", "level": "INFO"}}}}' diff --git a/tests/fixtures/env-clone-to-uninitialized.yml b/tests/fixtures/env-clone-to-uninitialized.yml deleted file mode 100644 index c2b8902e0..000000000 --- a/tests/fixtures/env-clone-to-uninitialized.yml +++ /dev/null @@ -1,221 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - method: post - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 528960d0-659b-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc","expires_at":1473982046,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:27 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 5329e690-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:28 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 53c16ba0-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:28 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 53fd1510-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:27:29 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 54579120-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - headers: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - headers: 'Bearer 11111111-1111-1111-1111-111111111111:52e78ed0-659b-11e6-af72-bc764e10b0ce:2IrRiyoJ02mOShYMZSIVc' - method: get - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/env-clone.yml b/tests/fixtures/env-clone.yml deleted file mode 100644 index 37ddd081a..000000000 --- a/tests/fixtures/env-clone.yml +++ /dev/null @@ -1,284 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d9ab3900-24eb-11e9-a83c-42010a8000a6:TLFUgrcE2dcaKLE9XELQV' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:41:56 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 0269b0b0-24f1-11e9-af22-552964d53864 - 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:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK","expires_at":1551314516,"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/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:41:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0349fe90-24f1-11e9-af22-552964d53864 - 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": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:41:59 GMT' - Content-Type: application/json - Content-Length: '4115' - Connection: keep-alive - X-Pantheon-Trace-Id: 04d384c0-24f1-11e9-b625-83398e3fdcc8 - 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": 1548892704, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal8", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2019-01-30T23:59:35", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-c", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "drupal8", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "url": "https://github.com/pantheon-systems/drops-8.git", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "branch": "master", "repository_url": "https://github.com/pantheon-systems/drops-8.git", "type": "core", "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, "label": "Site to be deleted", "id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 3, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 27, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 24, "registration_context": null, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Sara", "invites_to_site": 22, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 5, "tracking_first_site_upgrade": 1433800858, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "terminus-1": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "skip-cms-installation": {"b774bb32-81f1-42f3-832a-61aae89ad421": true}}, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-c", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "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": 1, "on_server_development": false, "drush_version": 8, "migration_method": null, "current_num_domains": 0, "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/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "framework": "drupal8", "max_total_domains": 0, "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1548892704, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2019-01-30T23:59:35", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Site to be deleted", "m3_ui": true}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:42:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0533f440-24f1-11e9-9e99-5738d1355c4e - 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": 1548892706, "environment_variables": {"php_version": 7.2}, "php_version": "72", "randseed": "V1DG167GHLIMJKWFYJPGD2NKMFODP7CX", "styx_cluster": "styx-fe3.pantheon.io", "target_commit": "7509c15acb86b1d47216123810b63b1bfa22fe39", "target_ref": "refs/tags/pantheon_test_1", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!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-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "live": {"dns_zone": "pantheonsite.io", "environment_created": 1548892707, "randseed": "BGJ75HMOQDMZLI1BXEABL0D5HIYSXIHD", "styx_cluster": "styx-fe3.pantheon.io", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!live", "environment_variables": {}, "php_version": "55", "is_initialized": false, "styx_clusters_for_cache_clear": ["styx-fe3-europe-west4.pantheon.io", "styx-fe4-europe-west4.pantheon.io", "edge.live.getpantheon.com", "styx-fe2-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "dev": {"dns_zone": "pantheonsite.io", "environment_created": 1548892704, "environment_variables": {"php_version": 7.2}, "on_server_development": true, "php_version": "72", "quicksilver_configuration": {}, "randseed": "LYD9LE00GF7H5JVEQ6EKB38RI0LCVA7T", "styx_cluster": "styx-fe3.pantheon.io", "target_commit": "7509c15acb86b1d47216123810b63b1bfa22fe39", "target_ref": "refs/heads/master", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f!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-europe-west4.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe1-europe-west4.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:42:00 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 055c15b0-24f1-11e9-ba22-4386f51ddb86 - 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: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "7509c15acb86b1d47216123810b63b1bfa22fe39", "author": "Root", "labels": ["test", "dev"], "datetime": "2019-01-30T23:59:34", "parents": ["60233e2657b19c9360b862cb496bb39f43dbe2f7"], "message": "\"Applying pantheon.yml file\"\n", "email": "root@getpantheon.com"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "60233e2657b19c9360b862cb496bb39f43dbe2f7", "author": "Root", "labels": ["test", "dev"], "datetime": "2019-01-30T23:59:31", "parents": ["d259ee8acffe7bb6905851b844ca894056d2ee94"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: POST - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - body: '{"type":"clone_files","params":{"from_environment":"test"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:42:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 059e27c0-24f1-11e9-ba08-a732fed127bf - 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": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "059e27c0-24f1-11e9-ba08-a732fed127bf", "params": {"from_environment": "test"}, "task_ids": ["05a5a0cc-24f1-11e9-8102-42010a800058"], "role": "owner", "type": "clone_files", "id": "05a3b686-24f1-11e9-8102-42010a800058", "key": "1548892800", "waiting_for_task_id": "05a5a0cc-24f1-11e9-8102-42010a800058", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1548895321.184423, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Clone files to \"dev\"", "description": "Clone files to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:059e27c0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:37:01.184423Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|devuser@pantheon.io", "created_at": 1433793438, "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": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548895321.225803, "params": {"task_type": "ellis_clone_files", "job_id": "05a5a0cc-24f1-11e9-8102-42010a800058", "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com"}, "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "059e27c0-24f1-11e9-ba08-a732fed127bf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "05a3b686-24f1-11e9-8102-42010a800058", "id": "05a5a0cc-24f1-11e9-8102-42010a800058", "key": "1548892800", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "initialized", "created_at": 1548895321.196974, "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:059e27c0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:37:01.196974Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_files", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/workflows/05a3b686-24f1-11e9-8102-42010a800058' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:42:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 05cc63b0-24f1-11e9-ba22-4386f51ddb86 - 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": "dev", "params": {"from_environment": "test"}, "role": "owner", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548895321.225542, "task_ids": ["05a5a0cc-24f1-11e9-8102-42010a800058"], "trace_id": "059e27c0-24f1-11e9-ba08-a732fed127bf", "type": "clone_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "05a3b686-24f1-11e9-8102-42010a800058", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "waiting_for_task_id": "05a5a0cc-24f1-11e9-8102-42010a800058", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1548895321.184423, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Cloning files from \"test\" to \"dev\"", "description": "Clone files to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:059e27c0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:37:01.184423Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|devuser@pantheon.io", "created_at": 1433793438, "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": {"build": {"url": "job/ellis_clone_files/988067/", "number": 988067, "phase": "STARTED", "estimated_duration": 2412, "duration": 0, "full_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_files/988067/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548895321.225803, "params": {"task_type": "ellis_clone_files", "job_id": "05a5a0cc-24f1-11e9-8102-42010a800058", "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com"}, "queued_at": 1548895321.231931, "responses": [{"code": 201, "body": "Successfully queued ellis_clone_files", "error_details": "", "internal_reason": ""}], "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548895321.331593, "trace_id": "059e27c0-24f1-11e9-ba08-a732fed127bf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "05a3b686-24f1-11e9-8102-42010a800058", "id": "05a5a0cc-24f1-11e9-8102-42010a800058", "key": "1548892800", "queued_time": 0.09966206550598145, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1548895321.196974, "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:059e27c0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:37:01.196974Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_files", "build_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_files/988067/", "messages": {"2019-01-31T00:42:01.497211": {"message": "Successfully queued ellis_clone_files", "level": "INFO"}}}}' -- - request: - method: POST - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - body: '{"type":"clone_database","params":{"from_environment":"test","clear_cache":false,"updatedb":0}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:43:39 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4064d8e0-24f1-11e9-ba08-a732fed127bf - 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": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "4064d8e0-24f1-11e9-ba08-a732fed127bf", "params": {"updatedb": 0, "from_environment": "test", "clear_cache": false}, "task_ids": ["406b5aa8-24f1-11e9-be67-42010a800160"], "role": "owner", "type": "clone_database", "id": "4069bbb2-24f1-11e9-be67-42010a800160", "key": "1548892800", "waiting_for_task_id": "406b5aa8-24f1-11e9-be67-42010a800160", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1548895419.790021, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Clone database to \"dev\"", "description": "Clone database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4064d8e0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:38:39.790021Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|devuser@pantheon.io", "created_at": 1433793438, "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": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548895419.829595, "params": {"task_type": "ellis_clone_database", "updatedb": 0, "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com", "job_id": "406b5aa8-24f1-11e9-be67-42010a800160"}, "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "trace_id": "4064d8e0-24f1-11e9-ba08-a732fed127bf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "4069bbb2-24f1-11e9-be67-42010a800160", "id": "406b5aa8-24f1-11e9-be67-42010a800160", "key": "1548892800", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "initialized", "created_at": 1548895419.800644, "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:4064d8e0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:38:39.800644Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_database", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/71fa895c-2394-417d-a80d-8ebc2f3de91f/workflows/4069bbb2-24f1-11e9-be67-42010a800160' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:02eec28c-24f1-11e9-924c-42010a8001a4:tNfkZfuJSiAl1P9P2uCkK' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 31 Jan 2019 00:43:40 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 40927890-24f1-11e9-8b0d-8331b2b07b80 - 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": "dev", "params": {"updatedb": 0, "from_environment": "test", "clear_cache": false}, "role": "owner", "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548895419.829341, "task_ids": ["406b5aa8-24f1-11e9-be67-42010a800160"], "trace_id": "4064d8e0-24f1-11e9-ba08-a732fed127bf", "type": "clone_database", "user_id": "11111111-1111-1111-1111-111111111111", "id": "4069bbb2-24f1-11e9-be67-42010a800160", "key": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "waiting_for_task_id": "406b5aa8-24f1-11e9-be67-42010a800160", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1548895419.790021, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Cloning database from \"test\" to \"dev\"", "description": "Clone database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4064d8e0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:38:39.790021Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|devuser@pantheon.io", "created_at": 1433793438, "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": {"build": {"url": "job/ellis_clone_database/1015863/", "number": 1015863, "phase": "STARTED", "estimated_duration": 48106, "duration": 0, "full_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_database/1015863/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "initialized_at": 1548895419.829595, "params": {"task_type": "ellis_clone_database", "updatedb": 0, "from_env": "test", "site": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "to_env": "dev", "host": "ellis.live.getpantheon.com", "job_id": "406b5aa8-24f1-11e9-be67-42010a800160"}, "queued_at": 1548895419.835538, "responses": [{"code": 201, "body": "Successfully queued ellis_clone_database", "error_details": "", "internal_reason": ""}], "site_id": "71fa895c-2394-417d-a80d-8ebc2f3de91f", "started_at": 1548895419.972626, "trace_id": "4064d8e0-24f1-11e9-ba08-a732fed127bf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "4069bbb2-24f1-11e9-be67-42010a800160", "id": "406b5aa8-24f1-11e9-be67-42010a800160", "key": "1548892800", "queued_time": 0.13708806037902832, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1548895419.800644, "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:4064d8e0-24f1-11e9-ba08-a732fed127bf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-31T00:38:39.800644Z%27,mode:quick,to:%27now%27))", "type": "ellis_clone_database", "build_url": "https://35.188.101.186:8090/jenkins/job/ellis_clone_database/1015863/", "messages": {"2019-01-31T00:43:40.112747": {"message": "Successfully queued ellis_clone_database", "level": "INFO"}}}}' diff --git a/tests/fixtures/env-code-log.yml b/tests/fixtures/env-code-log.yml deleted file mode 100644 index aacf58da4..000000000 --- a/tests/fixtures/env-code-log.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:42 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 561f1540-659c-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f","expires_at":1473982482,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:42 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 56a31250-659c-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 573ce150-659c-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:43 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 577863b0-659c-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:44 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 57bcbfb0-659c-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {"license.txt": {"deletions": "385", "status": "D", "additions": "0"}}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58240d00-659c-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-commit.yml b/tests/fixtures/env-commit.yml deleted file mode 100644 index ec0412213..000000000 --- a/tests/fixtures/env-commit.yml +++ /dev/null @@ -1,325 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c9cb8d4e-659b-11e6-8b63-bc764e105ecb:ve5ujxqvFIGvQXdfYtfVE' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c9cb8d4e-659b-11e6-8b63-bc764e105ecb:ve5ujxqvFIGvQXdfYtfVE' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: d7328f50-659b-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp","expires_at":1473982269,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:09 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: d7ae00e0-659b-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:10 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d88240d0-659b-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:11 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: d8bcd8d0-659b-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:11 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d9142090-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/on-server-development/diffstat' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:12 GMT' - Content-Type: application/json - Content-Length: '2' - Connection: keep-alive - X-Pantheon-Trace-Id: d98afe40-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"commit_and_push_on_server_changes","params":{"message":"Behat test commit","committer_name":"Dev User\n","committer_email":"devuser@pantheon.io\n"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d9c65990-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "d9c65990-659b-11e6-b9ec-2154b52d3a56", "params": {"message": "Behat test commit", "committer_name": "Dev User\n", "committer_email": "devuser@pantheon.io\n"}, "task_ids": ["d9d85758-659b-11e6-905a-bc764e1022a9"], "role": "owner", "type": "commit_and_push_on_server_changes", "id": "d9cd0e3e-659b-11e6-905a-bc764e1022a9", "key": "1471561200", "waiting_for_task_id": "d9d85758-659b-11e6-905a-bc764e1022a9", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471563072.980947, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Commit code changes", "description": "Commit code changes", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:d9c65990-659b-11e6-b9ec-2154b52d3a56%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:26:12.980947Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"committer_email": "devuser@pantheon.io\n", "task_type": "commit_push_code", "job_id": "d9d85758-659b-11e6-905a-bc764e1022a9", "pantheon_environment": "dev", "site": "11111111-1111-1111-1111-111111111111", "host": "23.253.170.86", "branch": "master", "binding_id": "0bc33e0b7b37462cad40e081d5173721", "message": "Behat test commit", "committer_name": "Dev User\n"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "d9c65990-659b-11e6-b9ec-2154b52d3a56", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "d9cd0e3e-659b-11e6-905a-bc764e1022a9", "id": "d9d85758-659b-11e6-905a-bc764e1022a9", "key": "1471561200", "responses": [], "queued_time": null, "host": "23.253.170.86", "result": null, "phase": "created", "created_at": 1471563073.054908, "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:d9c65990-659b-11e6-b9ec-2154b52d3a56%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:26:13.054908Z%27,mode:quick,to:%27now%27))", "type": "commit_push_code", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/d9cd0e3e-659b-11e6-905a-bc764e1022a9' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: dadfb8d0-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"message": "Behat test commit", "committer_name": "Dev User\n", "committer_email": "devuser@pantheon.io\n"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471563073.105251, "task_ids": ["d9d85758-659b-11e6-905a-bc764e1022a9"], "trace_id": "d9c65990-659b-11e6-b9ec-2154b52d3a56", "type": "commit_and_push_on_server_changes", "user_id": "11111111-1111-1111-1111-111111111111", "id": "d9cd0e3e-659b-11e6-905a-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "d9d85758-659b-11e6-905a-bc764e1022a9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471563072.980947, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Committing code changes in \"dev\"", "description": "Commit code changes", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:d9c65990-659b-11e6-b9ec-2154b52d3a56%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:26:12.980947Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/commit_push_code/547/", "number": 547, "phase": "STARTED", "estimated_duration": 4053, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/547/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"committer_email": "devuser@pantheon.io\n", "task_type": "commit_push_code", "job_id": "d9d85758-659b-11e6-905a-bc764e1022a9", "pantheon_environment": "dev", "site": "11111111-1111-1111-1111-111111111111", "host": "23.253.170.86", "branch": "master", "binding_id": "0bc33e0b7b37462cad40e081d5173721", "message": "Behat test commit", "committer_name": "Dev User\n"}, "queued_at": 1471563073.105586, "responses": [{"code": 201, "body": "Successfully queued commit_push_code", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471563074.582559, "trace_id": "d9c65990-659b-11e6-b9ec-2154b52d3a56", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "d9cd0e3e-659b-11e6-905a-bc764e1022a9", "id": "d9d85758-659b-11e6-905a-bc764e1022a9", "key": "1471561200", "queued_time": 1.476973056793213, "host": "23.253.170.86", "result": null, "phase": "started", "created_at": 1471563073.054908, "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:d9c65990-659b-11e6-b9ec-2154b52d3a56%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-18T23:26:13.054908Z%27,mode:quick,to:%27now%27))", "type": "commit_push_code", "build_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/547/", "messages": {"2016-08-18T23:31:14.875189": {"message": "Successfully queued commit_push_code", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d77626ac-659b-11e6-9a70-bc764e10b0ce:O56jci71KevLYP8xmqGcp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: dfbdc130-659b-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-deploy-init-with-message.yml b/tests/fixtures/env-deploy-init-with-message.yml deleted file mode 100644 index 7fa8428e0..000000000 --- a/tests/fixtures/env-deploy-init-with-message.yml +++ /dev/null @@ -1,288 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6ee2a8d0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:52 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 6f1ec770-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6f656d60-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_environment","params":{"annotation":"Shes the one named Sailor Moon!","clone_database":{"from_environment":"dev"},"clone_files":{"from_environment":"dev"}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:55 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 701dc0e0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "test", "user_id": "11111111-1111-1111-1111-111111111111", "keep_forever": true, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Shes the one named Sailor Moon!", "clone_database": {"from_environment": "dev"}}, "task_ids": ["702b12f4-697f-11e6-af37-bc764e11227e", "702d30e8-697f-11e6-af37-bc764e11227e", "702e77fa-697f-11e6-af37-bc764e11227e", "702f812c-697f-11e6-af37-bc764e11227e", "70307f46-697f-11e6-af37-bc764e11227e", "70318df0-697f-11e6-af37-bc764e11227e", "70329cfe-697f-11e6-af37-bc764e11227e", "704327f4-697f-11e6-af37-bc764e11227e", "7044c00a-697f-11e6-af37-bc764e11227e"], "role": "owner", "type": "create_environment", "id": "7023046a-697f-11e6-af37-bc764e11227e", "key": "1471989600", "waiting_for_task_id": "702b12f4-697f-11e6-af37-bc764e11227e", "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471990674.448497, "reason": "", "environment": "test", "final_task_id": null, "result": null, "total_time": null, "active_description": "Create environment \"test\"", "description": "Create environment \"test\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 9, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.448497Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "702b12f4-697f-11e6-af37-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "workflow_id": "7023046a-697f-11e6-af37-bc764e11227e", "id": "702b12f4-697f-11e6-af37-bc764e11227e", "key": "1471989600", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "created", "created_at": 1471990674.501298, "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:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.501298Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/7023046a-697f-11e6-af37-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:56 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 7144dbc0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Shes the one named Sailor Moon!", "clone_database": {"from_environment": "dev"}}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990674.711835, "task_ids": ["702b12f4-697f-11e6-af37-bc764e11227e", "702d30e8-697f-11e6-af37-bc764e11227e", "702e77fa-697f-11e6-af37-bc764e11227e", "702f812c-697f-11e6-af37-bc764e11227e", "70307f46-697f-11e6-af37-bc764e11227e", "70318df0-697f-11e6-af37-bc764e11227e", "70329cfe-697f-11e6-af37-bc764e11227e", "704327f4-697f-11e6-af37-bc764e11227e", "7044c00a-697f-11e6-af37-bc764e11227e"], "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "7023046a-697f-11e6-af37-bc764e11227e", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "702b12f4-697f-11e6-af37-bc764e11227e", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471990674.448497, "reason": "", "environment": "test", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"dev\", and cloning database from \"dev\"", "description": "Create environment \"test\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 9, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.448497Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "build": {"url": "job/converge_hostname/705/", "number": 705, "phase": "STARTED", "estimated_duration": 1153, "duration": 0, "full_url": "https://162.242.168.42:8090/jenkins/job/converge_hostname/705/"}, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "702b12f4-697f-11e6-af37-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "queued_at": 1471990674.71195, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990675.946164, "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "workflow_id": "7023046a-697f-11e6-af37-bc764e11227e", "id": "702b12f4-697f-11e6-af37-bc764e11227e", "key": "1471989600", "queued_time": 1.2342138290405273, "host": "localhost", "result": "succeeded", "phase": "started", "created_at": 1471990674.501298, "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:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.501298Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": "https://162.242.168.42:8090/jenkins/job/converge_hostname/705/", "messages": {"2016-08-23T22:17:56.403707": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/env-deploy-init.yml b/tests/fixtures/env-deploy-init.yml deleted file mode 100644 index 2a2b176ef..000000000 --- a/tests/fixtures/env-deploy-init.yml +++ /dev/null @@ -1,290 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6ee2a8d0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:52 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 6f1ec770-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6f656d60-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_environment","params":{"annotation":"Deploy from Terminus","clone_database":{"from_environment":"dev"},"clone_files":{"from_environment":"dev"}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:55 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 701dc0e0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "test", "user_id": "11111111-1111-1111-1111-111111111111", "keep_forever": true, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Deploy from Terminus", "clone_database": {"from_environment": "dev"}}, "task_ids": ["702b12f4-697f-11e6-af37-bc764e11227e", "702d30e8-697f-11e6-af37-bc764e11227e", "702e77fa-697f-11e6-af37-bc764e11227e", "702f812c-697f-11e6-af37-bc764e11227e", "70307f46-697f-11e6-af37-bc764e11227e", "70318df0-697f-11e6-af37-bc764e11227e", "70329cfe-697f-11e6-af37-bc764e11227e", "704327f4-697f-11e6-af37-bc764e11227e", "7044c00a-697f-11e6-af37-bc764e11227e"], "role": "owner", "type": "create_environment", "id": "7023046a-697f-11e6-af37-bc764e11227e", "key": "1471989600", "waiting_for_task_id": "702b12f4-697f-11e6-af37-bc764e11227e", "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471990674.448497, "reason": "", "environment": "test", "final_task_id": null, "result": null, "total_time": null, "active_description": "Create environment \"test\"", "description": "Create environment \"test\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 9, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.448497Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "702b12f4-697f-11e6-af37-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "workflow_id": "7023046a-697f-11e6-af37-bc764e11227e", "id": "702b12f4-697f-11e6-af37-bc764e11227e", "key": "1471989600", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "created", "created_at": 1471990674.501298, "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:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.501298Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/7023046a-697f-11e6-af37-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:56 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 7144dbc0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Deploy from Terminus", "clone_database": {"from_environment": "dev"}}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990674.711835, "task_ids": ["702b12f4-697f-11e6-af37-bc764e11227e", "702d30e8-697f-11e6-af37-bc764e11227e", "702e77fa-697f-11e6-af37-bc764e11227e", "702f812c-697f-11e6-af37-bc764e11227e", "70307f46-697f-11e6-af37-bc764e11227e", "70318df0-697f-11e6-af37-bc764e11227e", "70329cfe-697f-11e6-af37-bc764e11227e", "704327f4-697f-11e6-af37-bc764e11227e", "7044c00a-697f-11e6-af37-bc764e11227e"], "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "7023046a-697f-11e6-af37-bc764e11227e", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "702b12f4-697f-11e6-af37-bc764e11227e", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471990674.448497, "reason": "", "environment": "test", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"dev\", and cloning database from \"dev\"", "description": "Create environment \"test\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 9, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.448497Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "build": {"url": "job/converge_hostname/705/", "number": 705, "phase": "STARTED", "estimated_duration": 1153, "duration": 0, "full_url": "https://162.242.168.42:8090/jenkins/job/converge_hostname/705/"}, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "702b12f4-697f-11e6-af37-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "queued_at": 1471990674.71195, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990675.946164, "trace_id": "701dc0e0-697f-11e6-9ba8-733939e0aeaf", "workflow_id": "7023046a-697f-11e6-af37-bc764e11227e", "id": "702b12f4-697f-11e6-af37-bc764e11227e", "key": "1471989600", "queued_time": 1.2342138290405273, "host": "localhost", "result": "succeeded", "phase": "started", "created_at": 1471990674.501298, "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:701dc0e0-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:54.501298Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": "https://162.242.168.42:8090/jenkins/job/converge_hostname/705/", "messages": {"2016-08-23T22:17:56.403707": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/env-deploy-no-changes.yml b/tests/fixtures/env-deploy-no-changes.yml deleted file mode 100644 index d93c486fc..000000000 --- a/tests/fixtures/env-deploy-no-changes.yml +++ /dev/null @@ -1,253 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:11:52 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: c82273e0-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ","expires_at":1474053112,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:11:52 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: c9931ae0-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:11:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ca219f40-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:11:54 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: ca689350-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c943a8de-6640-11e6-acc0-bc764e105ecb:Ic549GUuaeUIkm64SrsFQ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:11:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: caabb6d0-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-deploy-uninitialized-source.yml b/tests/fixtures/env-deploy-uninitialized-source.yml deleted file mode 100644 index b659c6104..000000000 --- a/tests/fixtures/env-deploy-uninitialized-source.yml +++ /dev/null @@ -1,392 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9cb56790-663f-11e6-9061-bc764e105ecb:SDZlKyL74bn4qPc9hphz4' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9cb56790-663f-11e6-9061-bc764e105ecb:SDZlKyL74bn4qPc9hphz4' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:19 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 493c5690-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62","expires_at":1474052898,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:19 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 4a986420-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:21 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4b89f010-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:21 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: 4bc30170-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4c04ec70-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4cb74c80-6640-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-19T19:04:59", "parents": ["e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2"], "message": "added a file\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-19T19:00:29", "parents": ["a6a94cff8dbc3f15c93b2d3c6777aa334a476927"], "message": "Removed license\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"deploy","params":{"updatedb":0,"clear_cache":0,"annotation":"Deploy test","clone_database":{"from_environment":"live"},"clone_files":{"from_environment":"live"}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4cf87430-6640-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "live"}, "annotation": "Deploy test", "clone_database": {"from_environment": "live"}, "updatedb": 0, "clear_cache": 0, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "target_ref": "refs/tags/pantheon_test_2"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633703.903627, "task_ids": ["4d082740-6640-11e6-abe1-bc764e10b0ce", "4d095cb4-6640-11e6-abe1-bc764e10b0ce", "4d0a7d24-6640-11e6-abe1-bc764e10b0ce", "4d13451c-6640-11e6-abe1-bc764e10b0ce", "4d1481fc-6640-11e6-abe1-bc764e10b0ce", "4d15bc20-6640-11e6-abe1-bc764e10b0ce"], "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "type": "deploy", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471633703.705249, "reason": "", "environment": "test", "final_task_id": null, "result": null, "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"live\", and cloning database from \"live\"", "description": "Deploy code to \"test\"", "step": 4, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.705249Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "user_id": null, "workflow_id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "responses": [], "queued_time": null, "host": "104.130.221.158", "result": null, "phase": "created", "created_at": 1471633703.842742, "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:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.842742Z%27,mode:quick,to:%27now%27))", "type": "converge_appserver_binding", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/4cfe4a4a-6640-11e6-abe1-bc764e10b0ce' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4e6b3e10-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "live"}, "annotation": "Deploy test", "clone_database": {"from_environment": "live"}, "updatedb": 0, "clear_cache": 0, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "target_ref": "refs/tags/pantheon_test_2"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633703.903627, "task_ids": ["4d082740-6640-11e6-abe1-bc764e10b0ce", "4d095cb4-6640-11e6-abe1-bc764e10b0ce", "4d0a7d24-6640-11e6-abe1-bc764e10b0ce", "4d13451c-6640-11e6-abe1-bc764e10b0ce", "4d1481fc-6640-11e6-abe1-bc764e10b0ce", "4d15bc20-6640-11e6-abe1-bc764e10b0ce"], "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "type": "deploy", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "key": "11111111-1111-1111-1111-111111111111", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471633703.705249, "reason": "", "environment": "test", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"live\", and cloning database from \"live\"", "description": "Deploy code to \"test\"", "step": 4, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.705249Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/214971/", "number": 214971, "phase": "STARTED", "estimated_duration": 12742, "duration": 0, "full_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/214971/"}, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "queued_at": 1471633704.33828, "responses": [{"code": 201, "body": "Successfully queued converge_appserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633705.715855, "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "user_id": null, "workflow_id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "queued_time": 1.3775749206542969, "host": "104.130.221.158", "result": null, "phase": "started", "created_at": 1471633703.842742, "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:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.842742Z%27,mode:quick,to:%27now%27))", "type": "converge_appserver_binding", "build_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/214971/", "messages": {"2016-08-19T19:08:26.137489": {"message": "Successfully queued converge_appserver_binding", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3507a660-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/env-deploy.yml b/tests/fixtures/env-deploy.yml deleted file mode 100644 index 91d009667..000000000 --- a/tests/fixtures/env-deploy.yml +++ /dev/null @@ -1,333 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:19 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 493c5690-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62","expires_at":1474052898,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:19 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 4a986420-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:21 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4b89f010-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:21 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: 4bc30170-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4c04ec70-6640-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4cb74c80-6640-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-19T19:04:59", "parents": ["e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2"], "message": "added a file\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-19T19:00:29", "parents": ["a6a94cff8dbc3f15c93b2d3c6777aa334a476927"], "message": "Removed license\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - body: '{"type":"deploy","params":{"updatedb":0,"clear_cache":0,"annotation":"Deploy test","clone_database":{"from_environment":"live"},"clone_files":{"from_environment":"live"}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4cf87430-6640-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "live"}, "annotation": "Deploy test", "clone_database": {"from_environment": "live"}, "updatedb": 0, "clear_cache": 0, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "target_ref": "refs/tags/pantheon_test_2"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633703.903627, "task_ids": ["4d082740-6640-11e6-abe1-bc764e10b0ce", "4d095cb4-6640-11e6-abe1-bc764e10b0ce", "4d0a7d24-6640-11e6-abe1-bc764e10b0ce", "4d13451c-6640-11e6-abe1-bc764e10b0ce", "4d1481fc-6640-11e6-abe1-bc764e10b0ce", "4d15bc20-6640-11e6-abe1-bc764e10b0ce"], "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "type": "deploy", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471633703.705249, "reason": "", "environment": "test", "final_task_id": null, "result": null, "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"live\", and cloning database from \"live\"", "description": "Deploy code to \"test\"", "step": 4, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.705249Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "user_id": null, "workflow_id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "responses": [], "queued_time": null, "host": "104.130.221.158", "result": null, "phase": "created", "created_at": 1471633703.842742, "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:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.842742Z%27,mode:quick,to:%27now%27))", "type": "converge_appserver_binding", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/4cfe4a4a-6640-11e6-abe1-bc764e10b0ce' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4a2fe1de-6640-11e6-8d03-bc764e10b0ce:ufQocJfmb6tEtFlbf9z62' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:08:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4e6b3e10-6640-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "test", "keep_forever": true, "params": {"clone_files": {"from_environment": "live"}, "annotation": "Deploy test", "clone_database": {"from_environment": "live"}, "updatedb": 0, "clear_cache": 0, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "target_ref": "refs/tags/pantheon_test_2"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633703.903627, "task_ids": ["4d082740-6640-11e6-abe1-bc764e10b0ce", "4d095cb4-6640-11e6-abe1-bc764e10b0ce", "4d0a7d24-6640-11e6-abe1-bc764e10b0ce", "4d13451c-6640-11e6-abe1-bc764e10b0ce", "4d1481fc-6640-11e6-abe1-bc764e10b0ce", "4d15bc20-6640-11e6-abe1-bc764e10b0ce"], "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "type": "deploy", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "key": "11111111-1111-1111-1111-111111111111", "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471633703.705249, "reason": "", "environment": "test", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Deploying code to \"test\", and cloning files from \"live\", and cloning database from \"live\"", "description": "Deploy code to \"test\"", "step": 4, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.705249Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/214971/", "number": 214971, "phase": "STARTED", "estimated_duration": 12742, "duration": 0, "full_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/214971/"}, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "queued_at": 1471633704.33828, "responses": [{"code": 201, "body": "Successfully queued converge_appserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471633705.715855, "trace_id": "4cf87430-6640-11e6-9aa2-6117a1834a25", "user_id": null, "workflow_id": "4cfe4a4a-6640-11e6-abe1-bc764e10b0ce", "id": "4d13451c-6640-11e6-abe1-bc764e10b0ce", "key": "1471633200", "queued_time": 1.3775749206542969, "host": "104.130.221.158", "result": null, "phase": "started", "created_at": 1471633703.842742, "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:4cf87430-6640-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:03:23.842742Z%27,mode:quick,to:%27now%27))", "type": "converge_appserver_binding", "build_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/214971/", "messages": {"2016-08-19T19:08:26.137489": {"message": "Successfully queued converge_appserver_binding", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6fcd7e00-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fd189de48079708075d2bed9571a039d0ffe63f", "author": "Root", "labels": ["test", "dev"], "datetime": "2016-08-23T20:39:03", "parents": ["416283d2360809753f868ebee64f7c81c8b63f8e"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e7bd1d2-697f-11e6-9f69-bc764e11227e:yspWsnspZ03e2MuH9DcUr' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3507a660-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-diffstat-empty.yml b/tests/fixtures/env-diffstat-empty.yml deleted file mode 100644 index c72dfdc35..000000000 --- a/tests/fixtures/env-diffstat-empty.yml +++ /dev/null @@ -1,216 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7fe323a-659b-11e6-9236-bc764e10b0ce:yxtQ7jmo6DPHtQCn8KuAd' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7fe323a-659b-11e6-9236-bc764e10b0ce:yxtQ7jmo6DPHtQCn8KuAd' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: ea27c530-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP","expires_at":1473982301,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:41 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: eacc4290-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: eb5ff710-659b-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:43 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: ebaf0170-659b-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ebf38480-659b-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/on-server-development/diffstat' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:31:44 GMT' - Content-Type: application/json - Content-Length: '2' - Connection: keep-alive - X-Pantheon-Trace-Id: ec5af8e0-659b-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{}' diff --git a/tests/fixtures/env-diffstat.yml b/tests/fixtures/env-diffstat.yml deleted file mode 100644 index be152ef78..000000000 --- a/tests/fixtures/env-diffstat.yml +++ /dev/null @@ -1,216 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ea94ee94-659b-11e6-a7cb-bc764e11bdd3:l2JYjTJyThb2TNJ1tWROP' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:16 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 46f05d40-659c-11e6-96e6-818700c33129 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp","expires_at":1473982456,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:17 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 47906dd0-659c-11e6-969f-2d4a921a567d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:18 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 481a5e50-659c-11e6-b9ec-2154b52d3a56 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:18 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 48608f10-659c-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 48a1ddd0-659c-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {"license.txt": {"deletions": "385", "status": "D", "additions": "0"}}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/on-server-development/diffstat' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:474ca82a-659c-11e6-bbe1-bc764e1141f9:rRSHSpVA358gBLk5UQpTp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 18 Aug 2016 23:34:19 GMT' - Content-Type: application/json - Content-Length: '70' - Connection: keep-alive - X-Pantheon-Trace-Id: 490a3c90-659c-11e6-95f9-d1e00bbafeb8 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"license.txt": {"deletions": "385", "status": "D", "additions": "0"}}' diff --git a/tests/fixtures/env-info.yml b/tests/fixtures/env-info.yml deleted file mode 100644 index b5f0fafd9..000000000 --- a/tests/fixtures/env-info.yml +++ /dev/null @@ -1,287 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0183c18e-6641-11e6-bb9b-bc764e11bdd3:YJr5j0ltdL7u1S4KprkxH' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0183c18e-6641-11e6-bb9b-bc764e11bdd3:YJr5j0ltdL7u1S4KprkxH' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:31 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 28272420-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7","expires_at":1474053271,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:33 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 28985c80-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:34 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2a0951a0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:35 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: 2a410370-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:35 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2a80f2a0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:36 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2b042c60-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/code-upstream-updates' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.1 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 20 Sep 2016 18:49:44 GMT' - Content-Type: application/json - Content-Length: '1575' - Connection: keep-alive - X-Pantheon-Trace-Id: ff026b50-7f62-11e6-88c9-699df0f70b59 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"remote_head": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "ahead": 7, "update_log": {"cccdd26e7c511bebbd40b23e6756056f8eb7bd3d": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "author": "Pantheon Automation", "labels": [], "datetime": "2016-09-07T19:06:47", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "Update to WordPress 4.6.1. For more information, see: https://wordpress.org/news/2016/09/wordpress-4-6-1-security-and-maintenance-release/\n", "email": "bot@getpantheon.com"}, "99d9779d7924d37be5750954b774ec786a95e5e0": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "99d9779d7924d37be5750954b774ec786a95e5e0", "author": "Pantheon Automation", "labels": [], "datetime": "2016-08-16T20:13:12", "parents": ["85431ad7eefbc602420812a1ab891965642c2183"], "message": "Update to WordPress 4.6. For more information, see: https://wordpress.org/news/2016/08/pepper/\n", "email": "bot@getpantheon.com"}}, "remote_branch": "refs/remotes/origin/master", "behind": 2, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:286451ce-6641-11e6-a161-bc764e1141f9:uWiqILJ8zJ1dFG2a6KLS7' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 345df8e0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:04:59", "parents": ["e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2"], "message": "added a file\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:00:29", "parents": ["a6a94cff8dbc3f15c93b2d3c6777aa334a476927"], "message": "Removed license\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-list-empty.yml b/tests/fixtures/env-list-empty.yml deleted file mode 100644 index ac8900378..000000000 --- a/tests/fixtures/env-list-empty.yml +++ /dev/null @@ -1,152 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:48 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 321e1b00-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO","expires_at":1474053288,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:49 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 32af1060-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:50 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3341b370-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:50 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: 3398ad10-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 33eaebc0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/env-list.yml b/tests/fixtures/env-list.yml deleted file mode 100644 index 049f73f94..000000000 --- a/tests/fixtures/env-list.yml +++ /dev/null @@ -1,242 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:48 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 321e1b00-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO","expires_at":1474053288,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:49 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 32af1060-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:50 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3341b370-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:50 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: 3398ad10-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 33eaebc0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 345df8e0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:04:59", "parents": ["e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2"], "message": "added a file\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:00:29", "parents": ["a6a94cff8dbc3f15c93b2d3c6777aa334a476927"], "message": "Removed license\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/test/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 34a736e0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:04:59", "parents": ["e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2"], "message": "added a file\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "e75b1b49ddeeabbcab81cdd936ad371b7f69e8e2", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-19T19:00:29", "parents": ["a6a94cff8dbc3f15c93b2d3c6777aa334a476927"], "message": "Removed license\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-18T23:31:15", "parents": ["41710101cf34dd3980c7534a2a1678208303fe19"], "message": "Behat test commit\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/a1f13b162091be9d5bc2fdd369aedafa?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "41710101cf34dd3980c7534a2a1678208303fe19", "author": "Dev User", "labels": ["test", "dev"], "datetime": "2016-08-17T00:46:03", "parents": ["1fdf194d3d7a0c930a4f118e1398412765320328"], "message": "Removed README.md\n", "email": "devuser@pantheon.io"}, {"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3269a12e-6641-11e6-8771-bc764e10b0ce:aGCpQUp65LQY7art7sRHO' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3507a660-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/env-view.yml b/tests/fixtures/env-view.yml deleted file mode 100644 index 0dc9f5ca3..000000000 --- a/tests/fixtures/env-view.yml +++ /dev/null @@ -1,145 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=5.5.26&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 26 Oct 2016 14:26:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2c02d720-9b88-11e6-ba93-85eff07488d9 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=5.5.26&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 26 Oct 2016 14:26:26 GMT' - Content-Type: application/json - Content-Length: '3159' - Connection: keep-alive - X-Pantheon-Trace-Id: 2d9b7880-9b88-11e6-ba93-85eff07488d9 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1477079090, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "7249b1ca-0897-4e3b-bc16-f081fed63821", "holder_type": "organization", "instrument": "42396ca2-e932-47c1-99be-a60f48c22502", "last_code_push": {"timestamp": "2016-10-21T19:45:04", "user_uuid": null}, "name": "behat-tests", "organization": "7249b1ca-0897-4e3b-bc16-f081fed63821", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1477079293, "service_level": "pro", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "4ccdd52d-330f-4e48-b01d-79f71397de15", "branch": "master"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"instrument": "42396ca2-e932-47c1-99be-a60f48c22502", "maxdevsites": "10", "name": "Another Test Org", "id": "7249b1ca-0897-4e3b-bc16-f081fed63821", "key": "7249b1ca-0897-4e3b-bc16-f081fed63821", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "another-test-org", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "another-test-org", "change_service_url": null, "name": "Another Test Org", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "behat-tests", "instrument": "42396ca2-e932-47c1-99be-a60f48c22502", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "pro", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1477079293, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "4ccdd52d-330f-4e48-b01d-79f71397de15", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "7249b1ca-0897-4e3b-bc16-f081fed63821", "name": "behat-tests", "created": 1477079090, "max_backups": 7, "holder_type": "organization", "number_allow_domains": 200, "organization": "7249b1ca-0897-4e3b-bc16-f081fed63821", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-10-21T19:45:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat-tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=5.5.26&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e0509b4c-97bc-11e6-af3a-bc764e10cbc8:IyAxuHjFsRMelKv1InUVq' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 26 Oct 2016 14:26:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2dd83360-9b88-11e6-ba93-85eff07488d9 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"live": {"environment_created": 1477079091, "dns_zone": "onebox.pantheonsite.io", "randseed": "BKU19TUGTDL10IW26T8R3BQYXEDM1ICI", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-ronan-onebox6.onebox.pantheon.io"}, "test": {"environment_created": 1477079091, "dns_zone": "onebox.pantheon.io", "randseed": "U7U2PSWWR5OP63RJK5W52L7K4UZ0WO1I", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-ronan-onebox6.onebox.pantheon.io"}, "dev": {"watchers": 1, "dedicated_ip": true, "diffstat": {}, "on_server_development": true, "environment_created": 1477079090, "dns_zone": "onebox.pantheonsite.io", "randseed": "9MFCV3O8UKEZ8O07D6C1GW8HL053QRV8", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "fa0dd988c2a337b5b544bef9fe75d22239a6133a", "ssl_enabled": true, "styx_cluster": "styx-ronan-onebox6.onebox.pantheon.io"}}' diff --git a/tests/fixtures/env-wake.yml b/tests/fixtures/env-wake.yml deleted file mode 100644 index 8801300c6..000000000 --- a/tests/fixtures/env-wake.yml +++ /dev/null @@ -1,255 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:02 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 3c57d880-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY","expires_at":1474055882,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:03 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 3cfd1930-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:04 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3d8bebb0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:04 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: 3dd0e3f0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3e2ff3e0-6647-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/domains' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:58:06 GMT' - Content-Type: application/json - Content-Length: '234' - Connection: keep-alive - X-Pantheon-Trace-Id: 3e978f50-6647-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"dns_zone_name": "pantheonsite.io", "environment": "dev", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "dev-behat-tests.pantheonsite.io", "key": "dev-behat-tests.pantheonsite.io", "deletable": false}]' -- - request: - method: GET - url: 'http://dev-behat-tests.pantheonsite.io/pantheon_healthcheck' - headers: - Host: dev-behat-tests.pantheonsite.io - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: get - absolute_url: '' - on_stats: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Cache-Control: max-age=0 - Content-Type: text/html - Date: 'Fri, 19 Aug 2016 19:58:06 GMT' - Server: nginx - X-Pantheon-Endpoint: 17fbb90d-7844-404d-9e49-3b034a0cc088 - X-Pantheon-Styx-Hostname: styxf8f66dba - X-Styx-Req-Id: styx-82f40fc7db3f3fbca1861a6b9ac66604 - X-Styx-Version: StyxGo - Content-Length: '3' - X-Varnish: '577680681' - Age: '0' - Via: '1.1 varnish-v4' - Vary: 'Accept-Encoding, Cookie' - Connection: keep-alive - Accept-Ranges: bytes - body: "OK\n" diff --git a/tests/fixtures/env-wipe.yml b/tests/fixtures/env-wipe.yml deleted file mode 100644 index 17779bceb..000000000 --- a/tests/fixtures/env-wipe.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3cc4947a-6647-11e6-b1a4-bc764e1141f9:Uj9Dm7wEs7hWYKA2TRBLY' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:17 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 8cdeed70-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS","expires_at":1474056017,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:18 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 8d5cd000-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8dfc9270-6647-11e6-8f86-018f7b210ab3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:19 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: 8e3814d0-6647-11e6-8f86-018f7b210ab3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8e955000-6647-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"wipe","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8f0e77a0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "8f0e77a0-6647-11e6-a69e-9d129c74acd7", "params": {}, "task_ids": ["8f195206-6647-11e6-86d6-bc764e1022a9"], "role": "owner", "type": "wipe", "id": "8f160f06-6647-11e6-86d6-bc764e1022a9", "key": "1471636800", "waiting_for_task_id": "8f195206-6647-11e6-86d6-bc764e1022a9", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471636821.067751, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Wipe files and database in \"dev\"", "description": "Wipe files and database in \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:8f0e77a0-6647-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:55:21.067751Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "ellis.live.getpantheon.com", "task_type": "ellis_wipe", "site": "11111111-1111-1111-1111-111111111111", "env": "dev", "job_id": "8f195206-6647-11e6-86d6-bc764e1022a9"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "8f0e77a0-6647-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "8f160f06-6647-11e6-86d6-bc764e1022a9", "id": "8f195206-6647-11e6-86d6-bc764e1022a9", "key": "1471636800", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "created", "created_at": 1471636821.089127, "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:8f0e77a0-6647-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:55:21.089127Z%27,mode:quick,to:%27now%27))", "type": "ellis_wipe", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/8f160f06-6647-11e6-86d6-bc764e1022a9' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:8d26d7d4-6647-11e6-8597-bc764e11bdd3:vM7F1TjMhkQynFQQ3N8lS' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 20:00:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 901bc8f0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636821.150457, "task_ids": ["8f195206-6647-11e6-86d6-bc764e1022a9"], "trace_id": "8f0e77a0-6647-11e6-a69e-9d129c74acd7", "type": "wipe", "user_id": "11111111-1111-1111-1111-111111111111", "id": "8f160f06-6647-11e6-86d6-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "8f195206-6647-11e6-86d6-bc764e1022a9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471636821.067751, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Wiped files and database in \"dev\"", "description": "Wipe files and database in \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:8f0e77a0-6647-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:55:21.067751Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/ellis_wipe/7225/", "number": 7225, "phase": "STARTED", "estimated_duration": 2075, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/ellis_wipe/7225/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "ellis.live.getpantheon.com", "task_type": "ellis_wipe", "site": "11111111-1111-1111-1111-111111111111", "env": "dev", "job_id": "8f195206-6647-11e6-86d6-bc764e1022a9"}, "queued_at": 1471636821.15103, "responses": [{"code": 201, "body": "Successfully queued ellis_wipe", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636822.695254, "trace_id": "8f0e77a0-6647-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "8f160f06-6647-11e6-86d6-bc764e1022a9", "id": "8f195206-6647-11e6-86d6-bc764e1022a9", "key": "1471636800", "queued_time": 1.5442240238189697, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1471636821.089127, "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:8f0e77a0-6647-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:55:21.089127Z%27,mode:quick,to:%27now%27))", "type": "ellis_wipe", "build_url": "https://104.239.201.18:8090/jenkins/job/ellis_wipe/7225/", "messages": {"2016-08-19T20:00:22.835517": {"message": "Successfully queued ellis_wipe", "level": "INFO"}}}}' diff --git a/tests/fixtures/functional/README.md b/tests/fixtures/functional/README.md deleted file mode 100644 index e20efe20a..000000000 --- a/tests/fixtures/functional/README.md +++ /dev/null @@ -1,13 +0,0 @@ -## Functional test fixutres - -These fixtures are used by the functional tests. - -### Plugins - -By default, plugins from the path `fixtures/functional/plugins/default` are loaded for every call to Terminus made during the Behat tests. - -To do functional tests with a different set of plugins, use: - - When I am using 'some-label' plugins - -This will cause plugins to be loaded from the path `fixtures/functional/plugins/some-label` instead. diff --git a/tests/fixtures/functional/plugins/no-namespace/plugin-example/composer.json b/tests/fixtures/functional/plugins/no-namespace/plugin-example/composer.json deleted file mode 100644 index 6aa75c007..000000000 --- a/tests/fixtures/functional/plugins/no-namespace/plugin-example/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "pantheon-systems/terminus-plugin-example", - "description": "An example Terminus command", - "type": "terminus-plugin", - "license": "MIT", - "extra": { - "terminus": { - "compatible-version": "2.*" - } - } -} diff --git a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HasBaseClassCommand.php b/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HasBaseClassCommand.php deleted file mode 100644 index 900a55551..000000000 --- a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HasBaseClassCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -whoToGreet(); - $this->log()->notice("Hello, $who!"); - } -} diff --git a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HelloCommand.php b/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HelloCommand.php deleted file mode 100644 index 6bd8fff6a..000000000 --- a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/HelloCommand.php +++ /dev/null @@ -1,22 +0,0 @@ -log()->notice("Hello, World!"); - } -} diff --git a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/PluginProvidedBaseClass.php b/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/PluginProvidedBaseClass.php deleted file mode 100644 index a98b90cbd..000000000 --- a/tests/fixtures/functional/plugins/no-namespace/plugin-example/src/PluginProvidedBaseClass.php +++ /dev/null @@ -1,20 +0,0 @@ -whoToGreet(); - $this->log()->notice("Hello, $who!"); - } -} diff --git a/tests/fixtures/functional/plugins/outdated/plugin-example/src/HelloCommand.php b/tests/fixtures/functional/plugins/outdated/plugin-example/src/HelloCommand.php deleted file mode 100644 index 6bd8fff6a..000000000 --- a/tests/fixtures/functional/plugins/outdated/plugin-example/src/HelloCommand.php +++ /dev/null @@ -1,22 +0,0 @@ -log()->notice("Hello, World!"); - } -} diff --git a/tests/fixtures/functional/plugins/outdated/plugin-example/src/PluginProvidedBaseClass.php b/tests/fixtures/functional/plugins/outdated/plugin-example/src/PluginProvidedBaseClass.php deleted file mode 100644 index a98b90cbd..000000000 --- a/tests/fixtures/functional/plugins/outdated/plugin-example/src/PluginProvidedBaseClass.php +++ /dev/null @@ -1,20 +0,0 @@ -=5.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Example\\Trivial\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Trivial example", - "keywords": [ - "trivial" - ], - "time": "2015-11-16T08:31:54+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/src/Commands/HelloDependenciesCommand.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/src/Commands/HelloDependenciesCommand.php deleted file mode 100644 index 78e496433..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/src/Commands/HelloDependenciesCommand.php +++ /dev/null @@ -1,48 +0,0 @@ -check('pre-init'); - } - - /** - * @hook post-init dependencies:hello - */ - function postInit() - { - $this->check('post-init'); - } - - /** - * Print the classic message to the log. - * - * @command dependencies:hello - */ - function sayHello() - { - $this->check('main command implementation'); - $this->log()->notice("Hello, " . LengthUnits::YD . "!"); - } - - protected function check($label) - { - $not = class_exists(LengthUnits::class) ? '' : 'NOT '; - $this->log()->notice("LengthUnits class {$not}found in $label."); - } -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/autoload.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/autoload.php deleted file mode 100644 index 4216cd0b0..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { - if (0 === strpos($class, $prefix)) { - foreach ($this->prefixDirsPsr4[$prefix] as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/LICENSE b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/LICENSE deleted file mode 100644 index 1a2812488..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) 2016 Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_classmap.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_classmap.php deleted file mode 100644 index 7a91153b0..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,9 +0,0 @@ - array($baseDir . '/src'), - 'Example\\Trivial\\' => array($vendorDir . '/example/trivial/src'), -); diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_real.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_real.php deleted file mode 100644 index 7424e12f8..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_real.php +++ /dev/null @@ -1,52 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitc43543670b490a195313c8dedf36d20b::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - return $loader; - } -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_static.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_static.php deleted file mode 100644 index b8c15a1a0..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/autoload_static.php +++ /dev/null @@ -1,39 +0,0 @@ - - array ( - 'Pantheon\\TerminusHello\\' => 23, - ), - 'E' => - array ( - 'Example\\Trivial\\' => 16, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Pantheon\\TerminusHello\\' => - array ( - 0 => __DIR__ . '/../..' . '/src', - ), - 'Example\\Trivial\\' => - array ( - 0 => __DIR__ . '/..' . '/example/trivial/src', - ), - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitc43543670b490a195313c8dedf36d20b::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitc43543670b490a195313c8dedf36d20b::$prefixDirsPsr4; - - }, null, ClassLoader::class); - } -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/installed.json b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/installed.json deleted file mode 100644 index a9e24de40..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/composer/installed.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "name": "example/trivial", - "version": "0.2.4", - "version_normalized": "0.2.4.0", - "source": { - "type": "git", - "url": "https://github.com/example/trivial.git", - "reference": "f50b3844ea6d5cb44bc32b9efd91b0d99d391753" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/example/trivial/zipball/f50b3844ea6d5cb44bc32b9efd91b0d99d391753", - "reference": "f50b3844ea6d5cb44bc32b9efd91b0d99d391753", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "time": "2015-11-16T08:31:54+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Example\\Trivial\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Trivial example", - "keywords": [ - "trivial" - ] - } -] diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/composer.json b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/composer.json deleted file mode 100644 index 1ffd85989..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/composer.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "example/trivial", - "description": "Trivial example", - "keywords": ["trivial"], - "type": "library", - "license": "MIT", - "require" : { - "php": ">=5.5" - }, - "autoload": { - "psr-4": { - "Example\\Trivial\\": "src/" - } - } -} diff --git a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/src/Unit/LengthUnits.php b/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/src/Unit/LengthUnits.php deleted file mode 100644 index d5e8ecb15..000000000 --- a/tests/fixtures/functional/plugins/with-dependencies/plugin-example/vendor/example/trivial/src/Unit/LengthUnits.php +++ /dev/null @@ -1,15 +0,0 @@ -log()->notice("Ohai!"); - } -} diff --git a/tests/fixtures/functional/plugins/with-hooks/plugin-example/src/Hooks/InitHook.php b/tests/fixtures/functional/plugins/with-hooks/plugin-example/src/Hooks/InitHook.php deleted file mode 100644 index 98f218f46..000000000 --- a/tests/fixtures/functional/plugins/with-hooks/plugin-example/src/Hooks/InitHook.php +++ /dev/null @@ -1,17 +0,0 @@ -whoToGreet(); - $this->log()->notice("Hello, $who!"); - } -} diff --git a/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/HelloCommand.php b/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/HelloCommand.php deleted file mode 100644 index 857a9144a..000000000 --- a/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/HelloCommand.php +++ /dev/null @@ -1,24 +0,0 @@ -log()->notice("Hello, World!"); - } -} diff --git a/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/PluginProvidedBaseClass.php b/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/PluginProvidedBaseClass.php deleted file mode 100644 index 48b972480..000000000 --- a/tests/fixtures/functional/plugins/with-namespace/plugin-example/src/Commands/PluginProvidedBaseClass.php +++ /dev/null @@ -1,22 +0,0 @@ -Gandi Domain Configuration guide for help configuring DNS records for this domain.", "dns_provider": "Gandi", "HasSomeMatching": true, "dns_records": [{"status": "okay", "status_message": "Correct value detected", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io", "detected_value": "live-behat-tests.pantheonsite.io"}]}, "debug_message": "", "RecheckCount": 0, "target_dns": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "EnvStyxClusterRecords": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "EnvPlatformDomainRecords": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "ownership_status": {"status": "completed", "message": "Ownership check completed", "verification_file_name": "", "verification_file_link": ""}, "statuses": [{"status": "okay", "message": "", "type": "dns", "alert": {"body": "See our performance guide for best practices to boost your site''s performance.", "header": "DNS pointing successfully at Pantheon\u2019s Global CDN"}}, {"status": "okay", "message": "Let\u2019s Encrypt certificate deployed to Pantheon\u2019s Global CDN. Certificate renews automatically with no additional cost.", "type": "https", "alert": {"body": "", "header": ""}}]}, {"dns_zone_name": "", "domain_lookup_usc1": 1505129314, "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "custom", "id": "behat-tests.me", "key": "behat-tests.me", "status": "okay", "status_message": "Launched", "deletable": true, "routing_status_details": {"routes_to_legacy_edge": false}, "service_level": "pro", "dns_status_details": {"HasLegacyRecords": false, "public_resolver_matches": [{"Address": "208.67.222.222", "Match": true, "Provider": "OpenDNS"}, {"Address": "209.244.0.3", "Match": true, "Provider": "Level3"}], "help_message": "We detected Gandi as the DNS provider for this domain. View our Gandi Domain Configuration guide for help configuring DNS records for this domain.", "dns_provider": "Gandi", "HasSomeMatching": true, "dns_records": [{"status": "okay", "status_message": "Correct value detected", "type": "A", "target_value": "23.185.0.2", "detected_value": "23.185.0.2"}, {"status": "okay", "status_message": "Correct value detected", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": "2620:12a:8000::2"}, {"status": "okay", "status_message": "Correct value detected", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": "2620:12a:8001::2"}]}, "debug_message": "", "RecheckCount": 0, "target_dns": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "EnvStyxClusterRecords": [{"status": "", "status_message": "", "type": "A", "target_value": "23.185.0.2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8000::2", "detected_value": ""}, {"status": "", "status_message": "", "type": "AAAA", "target_value": "2620:12a:8001::2", "detected_value": ""}], "EnvPlatformDomainRecords": [{"status": "", "status_message": "", "type": "CNAME", "target_value": "live-behat-tests.pantheonsite.io.", "detected_value": ""}], "ownership_status": {"status": "completed", "message": "Ownership check completed", "verification_file_name": "", "verification_file_link": ""}, "statuses": [{"status": "okay", "message": "", "type": "dns", "alert": {"body": "See our performance guide for best practices to boost your site''s performance.", "header": "DNS pointing successfully at Pantheon\u2019s Global CDN"}}, {"status": "okay", "message": "Let\u2019s Encrypt certificate deployed to Pantheon\u2019s Global CDN. Certificate renews automatically with no additional cost.", "type": "https", "alert": {"body": "", "header": ""}}]}, {"dns_zone_name": "pantheonsite.io", "domain_lookup_usc1": 1505143091, "environment": "live", "site_id": "11111111-1111-1111-1111-111111111111", "type": "platform", "id": "live-behat-tests.pantheonsite.io", "key": "live-behat-tests.pantheonsite.io", "status": "ok", "status_message": "Launched", "deletable": false}]' diff --git a/tests/fixtures/https-remove-nocert.yml b/tests/fixtures/https-remove-nocert.yml deleted file mode 100644 index d504acd13..000000000 --- a/tests/fixtures/https-remove-nocert.yml +++ /dev/null @@ -1,157 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:09:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 4e00df30-4223-11ea-9c75-8bb3bc7bc078 - 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:4e49c2ae-4223-11ea-8ffa-42010a800153:mg8nddA5GKH5XubhWZC82","expires_at":1582672199,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e49c2ae-4223-11ea-8ffa-42010a800153:mg8nddA5GKH5XubhWZC82' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:10:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5cb7a810-4223-11ea-bb56-75c960f0e894 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e49c2ae-4223-11ea-8ffa-42010a800153:mg8nddA5GKH5XubhWZC82' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:10:23 GMT' - Content-Type: application/json - Content-Length: '4273' - Connection: keep-alive - X-Pantheon-Trace-Id: 5ce8a320-4223-11ea-a4e9-094d8dc3bbf0 - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580252562, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests", "m3_ui": true}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e49c2ae-4223-11ea-8ffa-42010a800153:mg8nddA5GKH5XubhWZC82' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:10:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5d7cf3e0-4223-11ea-ac4a-597f3e18e2c9 - 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: '{"dev": {"dns_zone": "pantheonsite.io", "environment_created": 1580251290, "environment_variables": {"enforce_https": "transitional", "php_version": 7.3}, "on_server_development": true, "php_version": "73", "quicksilver_configuration": {}, "randseed": "C5M2J03E94028L3DBWW9JIAZCN2ACCZI", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "06e6137934044e0ff11ce35f15df903ad0b3d8f1", "target_ref": "refs/heads/master", "key": "11111111-1111-1111-1111-111111111111!dev", "preferred_pool": null, "is_initialized": true, "php_major_minor_version": "7.3", "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": 1580251296, "randseed": "BD0KE29FJ41H62TPR74I71W3ZA8E14X8", "styx_cluster": "styx-fe2.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!live", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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}}, "test": {"dns_zone": "pantheonsite.io", "environment_created": 1580251294, "randseed": "0BFZ0V5FU562HSB69MY7K2J22L721OBD", "styx_cluster": "styx-fe1.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!test", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/settings' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e49c2ae-4223-11ea-8ffa-42010a800153:mg8nddA5GKH5XubhWZC82' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:10:25 GMT' - Content-Type: application/json - Content-Length: '2526' - Connection: keep-alive - X-Pantheon-Trace-Id: 5db20da0-4223-11ea-9114-b3a0d1957940 - 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: '{"quicksilver_configuration": {}, "allow_domains": false, "redis": {"MemoryLimit": 64, "maxmemory": 52428800, "CPUShares": 8, "BlockIOWeight": 50}, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "site": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "mysql": {"query_cache_size": 32, "innodb_buffer_pool_size": 128, "innodb_log_file_size": 50331648, "BlockIOWeight": 400, "MemoryLimit": 256, "CPUShares": 250}, "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": 1, "on_server_development": true, "environment_created": 1580251290, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "environment": "dev", "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": "73", "php_channel": "stable", "allow_cacheserver": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "styx_cluster": "styx-fe4.pantheon.io", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "dns_zone": "pantheonsite.io", "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "environment_variables": {"enforce_https": "transitional", "php_version": 7.3}, "php-fpm": {"fpm_max_children": 4, "opcache_revalidate_freq": 0, "BlockIOWeight": 100, "MemoryLimit": 512, "apc_shm_size": 128, "php_memory_limit": 256, "CPUShares": 250}, "randseed": "C5M2J03E94028L3DBWW9JIAZCN2ACCZI", "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "target_commit": "06e6137934044e0ff11ce35f15df903ad0b3d8f1", "pingdom_manually_enabled": false, "nginx": {"sendfile": "off", "aio": "off", "worker_processes": 2, "directio": "off"}, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "target_ref": "refs/heads/master"}' diff --git a/tests/fixtures/https-remove.yml b/tests/fixtures/https-remove.yml deleted file mode 100644 index e45ad8a88..000000000 --- a/tests/fixtures/https-remove.yml +++ /dev/null @@ -1,220 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: ddcd76a0-4223-11ea-a74c-c993303ea501 - 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:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF","expires_at":1582672440,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: de96ba10-4223-11ea-b54b-bd3171138c85 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:02 GMT' - Content-Type: application/json - Content-Length: '4428' - Connection: keep-alive - X-Pantheon-Trace-Id: ded6d050-4223-11ea-a58a-99d9451e1976 - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580252562, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"global_edge_https_upgrade_available": false, "global_edge_https_upgrade_ignored": false, "global_edge_https_upgrade_in_progress": false, "has_global_edge_https": false, "label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:03 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: dfd55490-4223-11ea-a74c-c993303ea501 - 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: '{"dev": {"dns_zone": "pantheonsite.io", "environment_created": 1580251290, "environment_variables": {"enforce_https": "transitional", "php_version": 7.3}, "on_server_development": true, "php_version": "73", "quicksilver_configuration": {}, "randseed": "C5M2J03E94028L3DBWW9JIAZCN2ACCZI", "styx_cluster": "styx-01.pantheon.io", "target_commit": "06e6137934044e0ff11ce35f15df903ad0b3d8f1", "target_ref": "refs/heads/master", "key": "11111111-1111-1111-1111-111111111111!dev", "preferred_pool": null, "is_initialized": true, "php_major_minor_version": "7.3", "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": 1580251296, "randseed": "BD0KE29FJ41H62TPR74I71W3ZA8E14X8", "styx_cluster": "styx-01.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!live", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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}}, "test": {"dns_zone": "pantheonsite.io", "environment_created": 1580251294, "randseed": "0BFZ0V5FU562HSB69MY7K2J22L721OBD", "styx_cluster": "styx-01.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!test", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/settings' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:04 GMT' - Content-Type: application/json - Content-Length: '2525' - Connection: keep-alive - X-Pantheon-Trace-Id: e02fd0a0-4223-11ea-b049-eb3e46d20e8f - 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: '{"quicksilver_configuration": {}, "allow_domains": false, "redis": {"MemoryLimit": 64, "maxmemory": 52428800, "CPUShares": 8, "BlockIOWeight": 50}, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "site": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "mysql": {"query_cache_size": 32, "innodb_buffer_pool_size": 128, "innodb_log_file_size": 50331648, "BlockIOWeight": 400, "MemoryLimit": 256, "CPUShares": 250}, "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": 1, "on_server_development": true, "environment_created": 1580251290, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "environment": "dev", "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": "73", "php_channel": "stable", "allow_cacheserver": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": true, "plan_name": "Sandbox", "styx_cluster": "styx-01.pantheon.io", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "dns_zone": "pantheonsite.io", "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "environment_variables": {"enforce_https": "transitional", "php_version": 7.3}, "php-fpm": {"fpm_max_children": 4, "opcache_revalidate_freq": 0, "BlockIOWeight": 100, "MemoryLimit": 512, "apc_shm_size": 128, "php_memory_limit": 256, "CPUShares": 250}, "randseed": "C5M2J03E94028L3DBWW9JIAZCN2ACCZI", "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "target_commit": "06e6137934044e0ff11ce35f15df903ad0b3d8f1", "pingdom_manually_enabled": false, "nginx": {"sendfile": "off", "aio": "off", "worker_processes": 2, "directio": "off"}, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "target_ref": "refs/heads/master"}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - body: '{"type":"disable_ssl","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e86d30a0-4223-11ea-abad-931596a1453f - 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": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "task_ids": ["e8746e92-4223-11ea-bbd0-42010a8001a4", "e87934a4-4223-11ea-bbd0-42010a8001a4", "e87ccca4-4223-11ea-bbd0-42010a8001a4"], "trace_id": "e86d30a0-4223-11ea-abad-931596a1453f", "type": "disable_ssl", "user_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253258.070374, "reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "finished_at": 1580253258.29772, "waiting_for_task_id": null, "result": "aborted", "final_task_id": "e8746e92-4223-11ea-bbd0-42010a8001a4", "id": "e87232b2-4223-11ea-bbd0-42010a8001a4", "key": "1580252400", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.22734594345092773, "created_at": 1580253257.930821, "environment": "dev", "total_time": 0.3668990135192871, "active_description": "Disabled ssl for dev", "description": "Disable ssl for an environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e86d30a0-4223-11ea-abad-931596a1453f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:09:17.930821Z%27,mode:quick,to:%272020-01-28T23:19:18.297720Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "finished_at": 1580253258.181352, "fn_name": "trigger_task", "has_error": true, "initialized_at": 1580253258.070871, "params": {"environment": "dev", "task_type": "update_environment_setting", "site_id": "11111111-1111-1111-1111-111111111111", "key": "dedicated_ip", "value": false}, "queued_at": 1580253258.137185, "responses": [{"code": 400, "body": {"dedicated_ip": "Value ''False'' failed conditional"}, "error_details": "", "internal_reason": ""}], "result": "aborted", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253258.13719, "trace_id": "e86d30a0-4223-11ea-abad-931596a1453f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "e87232b2-4223-11ea-bbd0-42010a8001a4", "id": "e8746e92-4223-11ea-bbd0-42010a8001a4", "key": "1580252400", "queued_time": 5.0067901611328125e-06, "host": null, "phase": "finished", "created_at": 1580253257.945461, "allow_concurrent": false, "run_time": 0.04416179656982422, "total_time": 0.23589086532592773, "reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "error_details": {"dedicated_ip": "Value ''False'' failed conditional"}, "internal_reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e86d30a0-4223-11ea-abad-931596a1453f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:09:17.945461Z%27,mode:quick,to:%272020-01-28T23:19:18.181352Z%27))", "type": "update_environment_setting", "build_url": null, "messages": {"2020-01-28T23:14:18.391958": {"message": {"dedicated_ip": "Value ''False'' failed conditional"}, "level": "ERROR"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/e87232b2-4223-11ea-bbd0-42010a8001a4' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:de0a7fa0-4223-11ea-b537-42010a800058:1JGOad4uhYKVTacloTLZF' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:14:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e8dfa180-4223-11ea-b54b-bd3171138c85 - 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": "dev", "final_task_id": "e8746e92-4223-11ea-bbd0-42010a8001a4", "finished_at": 1580253258.29772, "params": {}, "reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253258.070374, "task_ids": ["e8746e92-4223-11ea-bbd0-42010a8001a4", "e87934a4-4223-11ea-bbd0-42010a8001a4", "e87ccca4-4223-11ea-bbd0-42010a8001a4"], "trace_id": "e86d30a0-4223-11ea-abad-931596a1453f", "type": "disable_ssl", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "e87232b2-4223-11ea-bbd0-42010a8001a4", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.22734594345092773, "created_at": 1580253257.930821, "environment": "dev", "total_time": 0.3668990135192871, "active_description": "Disabled ssl for dev", "description": "Disable ssl for an environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e86d30a0-4223-11ea-abad-931596a1453f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:09:17.930821Z%27,mode:quick,to:%272020-01-28T23:19:18.297720Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "finished_at": 1580253258.181352, "fn_name": "trigger_task", "has_error": true, "initialized_at": 1580253258.070871, "params": {"environment": "dev", "task_type": "update_environment_setting", "site_id": "11111111-1111-1111-1111-111111111111", "key": "dedicated_ip", "value": false}, "queued_at": 1580253258.137185, "responses": [{"code": 400, "body": {"dedicated_ip": "Value ''False'' failed conditional"}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253258.13719, "trace_id": "e86d30a0-4223-11ea-abad-931596a1453f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "e87232b2-4223-11ea-bbd0-42010a8001a4", "id": "e8746e92-4223-11ea-bbd0-42010a8001a4", "key": "1580252400", "queued_time": 5.0067901611328125e-06, "host": null, "phase": "finished", "created_at": 1580253257.945461, "allow_concurrent": false, "run_time": 0.04416179656982422, "total_time": 0.23589086532592773, "reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "error_details": {"dedicated_ip": "Value ''False'' failed conditional"}, "internal_reason": {"dedicated_ip": "Value ''False'' failed conditional"}, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e86d30a0-4223-11ea-abad-931596a1453f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:09:17.945461Z%27,mode:quick,to:%272020-01-28T23:19:18.181352Z%27))", "type": "update_environment_setting", "build_url": null, "messages": {"2020-01-28T23:14:18.733558": {"message": {"dedicated_ip": "Value ''False'' failed conditional"}, "level": "ERROR"}}}}' diff --git a/tests/fixtures/import-database.yml b/tests/fixtures/import-database.yml deleted file mode 100644 index 8bd1f1246..000000000 --- a/tests/fixtures/import-database.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:04 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: ee824140-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM","expires_at":1474053604,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:05 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: ef17ca80-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ef989340-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:06 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: efd945c0-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f01a9480-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"do_import","params":{"database":1,"url":"https://s3.amazonaws.com/pantheondemofiles/database.tar.gz"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0be1f050-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "0be1f050-6642-11e6-a69e-9d129c74acd7", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/database.tar.gz"}, "task_ids": ["0bf649ec-6642-11e6-b1a5-bc764e1022a9", "0bf7fb7a-6642-11e6-b1a5-bc764e1022a9", "0bf96244-6642-11e6-b1a5-bc764e1022a9"], "role": "owner", "type": "do_import", "id": "0be8d3ac-6642-11e6-b1a5-bc764e1022a9", "key": "1471633200", "waiting_for_task_id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471634453.506142, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Import database to \"dev\"", "description": "Import database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:0be1f050-6642-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:15:53.506142Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 0, "code": 0, "job_id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "database": 1, "url": "https://s3.amazonaws.com/pantheondemofiles/database.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "0be1f050-6642-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "0be8d3ac-6642-11e6-b1a5-bc764e1022a9", "id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "key": "1471633200", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "created", "created_at": 1471634453.594366, "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:0be1f050-6642-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:15:53.594366Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/0be8d3ac-6642-11e6-b1a5-bc764e1022a9' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:20:55 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0cf471c0-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/database.tar.gz"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634453.65632, "task_ids": ["0bf649ec-6642-11e6-b1a5-bc764e1022a9", "0bf7fb7a-6642-11e6-b1a5-bc764e1022a9", "0bf96244-6642-11e6-b1a5-bc764e1022a9"], "trace_id": "0be1f050-6642-11e6-a69e-9d129c74acd7", "type": "do_import", "user_id": "11111111-1111-1111-1111-111111111111", "id": "0be8d3ac-6642-11e6-b1a5-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634453.506142, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Importing database to \"dev\"", "description": "Import database to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:0be1f050-6642-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:15:53.506142Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/import_site/42760/", "number": 42760, "phase": "STARTED", "estimated_duration": 1691, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/import_site/42760/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 0, "code": 0, "job_id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "database": 1, "url": "https://s3.amazonaws.com/pantheondemofiles/database.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "queued_at": 1471634453.656653, "responses": [{"code": 201, "body": "Successfully queued import_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634454.911915, "trace_id": "0be1f050-6642-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "0be8d3ac-6642-11e6-b1a5-bc764e1022a9", "id": "0bf649ec-6642-11e6-b1a5-bc764e1022a9", "key": "1471633200", "queued_time": 1.2552621364593506, "host": "ellis.live.getpantheon.com", "result": null, "phase": "started", "created_at": 1471634453.594366, "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:0be1f050-6642-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:15:53.594366Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": "https://104.239.201.18:8090/jenkins/job/import_site/42760/", "messages": {"2016-08-19T19:20:55.302980": {"message": "Successfully queued import_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/import-files.yml b/tests/fixtures/import-files.yml deleted file mode 100644 index 7c5f0930e..000000000 --- a/tests/fixtures/import-files.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:52 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: e7041290-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA","expires_at":1474053592,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:52 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: e7a75770-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e81b7600-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:54 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: e87814f0-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e8b9b1d0-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"do_import","params":{"files":1,"url":"https://s3.amazonaws.com/pantheondemofiles/files.tar.gz"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:56 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e91a2150-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "e91a2150-6641-11e6-9aa2-6117a1834a25", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/files.tar.gz"}, "task_ids": ["e92a9922-6641-11e6-8502-bc764e11bdd3", "e92cff28-6641-11e6-8502-bc764e11bdd3", "e92e9d38-6641-11e6-8502-bc764e11bdd3"], "role": "owner", "type": "do_import", "id": "e9201060-6641-11e6-8502-bc764e11bdd3", "key": "1471633200", "waiting_for_task_id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471634395.147888, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Import files to \"dev\"", "description": "Import files to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e91a2150-6641-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:14:55.147888Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 1, "code": 0, "job_id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "database": 0, "url": "https://s3.amazonaws.com/pantheondemofiles/files.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "e91a2150-6641-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "e9201060-6641-11e6-8502-bc764e11bdd3", "id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "key": "1471633200", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "created", "created_at": 1471634395.216925, "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:e91a2150-6641-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:14:55.216925Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/e9201060-6641-11e6-8502-bc764e11bdd3' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e7590d54-6641-11e6-80d3-bc764e105ecb:Um30iPsWA6aJdJvY1EHYA' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:19:57 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ea3b96e0-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/files.tar.gz"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634395.275328, "task_ids": ["e92a9922-6641-11e6-8502-bc764e11bdd3", "e92cff28-6641-11e6-8502-bc764e11bdd3", "e92e9d38-6641-11e6-8502-bc764e11bdd3"], "trace_id": "e91a2150-6641-11e6-9aa2-6117a1834a25", "type": "do_import", "user_id": "11111111-1111-1111-1111-111111111111", "id": "e9201060-6641-11e6-8502-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634395.147888, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Importing files to \"dev\"", "description": "Import files to \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:e91a2150-6641-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:14:55.147888Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/import_site/42758/", "number": 42758, "phase": "STARTED", "estimated_duration": 11946, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/import_site/42758/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 1, "code": 0, "job_id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "database": 0, "url": "https://s3.amazonaws.com/pantheondemofiles/files.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "queued_at": 1471634395.275677, "responses": [{"code": 201, "body": "Successfully queued import_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634396.561717, "trace_id": "e91a2150-6641-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "e9201060-6641-11e6-8502-bc764e11bdd3", "id": "e92a9922-6641-11e6-8502-bc764e11bdd3", "key": "1471633200", "queued_time": 1.2860400676727295, "host": "ellis.live.getpantheon.com", "result": null, "phase": "started", "created_at": 1471634395.216925, "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:e91a2150-6641-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:14:55.216925Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": "https://104.239.201.18:8090/jenkins/job/import_site/42758/", "messages": {"2016-08-19T19:19:57.044534": {"message": "Successfully queued import_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/import.yml b/tests/fixtures/import.yml deleted file mode 100644 index 15eccbcae..000000000 --- a/tests/fixtures/import.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:96d4ab2c-6641-11e6-9c68-bc764e1141f9:yMrKGETBrHF36ZvWW7oWs' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:96d4ab2c-6641-11e6-9c68-bc764e1141f9:yMrKGETBrHF36ZvWW7oWs' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:48 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: c0e99620-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX","expires_at":1474053528,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:49 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: c1e50d20-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:50 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: c2795de0-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:50 GMT' - Content-Type: application/json - Content-Length: '3348' - Connection: keep-alive - X-Pantheon-Trace-Id: c2be0800-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: c30ee720-6641-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"do_migration","params":{"url":"https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: c3710450-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634332.450252, "task_ids": ["c377054e-6641-11e6-9bba-bc764e11bdd3", "c380108a-6641-11e6-9bba-bc764e11bdd3", "c3b582f6-6641-11e6-9bba-bc764e11bdd3", "c3b78c36-6641-11e6-9bba-bc764e11bdd3", "c3b95dc2-6641-11e6-9bba-bc764e11bdd3", "c3bad5c6-6641-11e6-9bba-bc764e11bdd3", "c3bcd15a-6641-11e6-9bba-bc764e11bdd3"], "trace_id": "c3710450-6641-11e6-a69e-9d129c74acd7", "type": "do_migration", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "id": "c375bb4e-6641-11e6-9bba-bc764e11bdd3", "key": "1471633200", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634331.955899, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Migrating site", "description": "Migrate site", "step": 2, "has_operation_log_output": false, "number_of_tasks": 7, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:c3710450-6641-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:13:51.955899Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 1, "code": 1, "job_id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "database": 1, "url": "https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "c3710450-6641-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "c375bb4e-6641-11e6-9bba-bc764e11bdd3", "id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "key": "1471633200", "responses": [], "queued_time": null, "host": "ellis.live.getpantheon.com", "result": null, "phase": "created", "created_at": 1471634332.023617, "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:c3710450-6641-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:13:52.023617Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/c375bb4e-6641-11e6-9bba-bc764e11bdd3' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:c12b2950-6641-11e6-aa1f-bc764e105ecb:aeuOqofVV43ehGPxaTwLX' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:18:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: c4bda890-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"url": "https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634332.450252, "task_ids": ["c377054e-6641-11e6-9bba-bc764e11bdd3", "c380108a-6641-11e6-9bba-bc764e11bdd3", "c3b582f6-6641-11e6-9bba-bc764e11bdd3", "c3b78c36-6641-11e6-9bba-bc764e11bdd3", "c3b95dc2-6641-11e6-9bba-bc764e11bdd3", "c3bad5c6-6641-11e6-9bba-bc764e11bdd3", "c3bcd15a-6641-11e6-9bba-bc764e11bdd3"], "trace_id": "c3710450-6641-11e6-a69e-9d129c74acd7", "type": "do_migration", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "id": "c375bb4e-6641-11e6-9bba-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634331.955899, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Migrating site", "description": "Migrate site", "step": 2, "has_operation_log_output": false, "number_of_tasks": 7, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:c3710450-6641-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:13:51.955899Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/import_site/42757/", "number": 42757, "phase": "STARTED", "estimated_duration": 13393, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/import_site/42757/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": 1, "code": 1, "job_id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "database": 1, "url": "https://s3.amazonaws.com/pantheondemofiles/archive.tar.gz", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "import_site", "env": "dev", "drush_archive": 0}, "queued_at": 1471634332.495556, "responses": [{"code": 201, "body": "Successfully queued import_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634333.823121, "trace_id": "c3710450-6641-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "c375bb4e-6641-11e6-9bba-bc764e11bdd3", "id": "c380108a-6641-11e6-9bba-bc764e11bdd3", "key": "1471633200", "queued_time": 1.3275649547576904, "host": "ellis.live.getpantheon.com", "result": null, "phase": "started", "created_at": 1471634332.023617, "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:c3710450-6641-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:13:52.023617Z%27,mode:quick,to:%27now%27))", "type": "import_site", "build_url": "https://104.239.201.18:8090/jenkins/job/import_site/42757/", "messages": {"2016-08-19T19:18:54.155345": {"message": "Successfully queued import_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/lock-add-remove.yml b/tests/fixtures/lock-add-remove.yml deleted file mode 100644 index fc6104a4b..000000000 --- a/tests/fixtures/lock-add-remove.yml +++ /dev/null @@ -1,327 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:38 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 6da62ae0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s","expires_at":1474053818,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:38 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 6e409620-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6ef196a0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:40 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: 6f2f8a00-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:40 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 6f8683a0-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"lock_environment","params":{"username":"pantheon","password":"password"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 701c5b00-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634621.817734, "task_ids": ["7027708a-6642-11e6-9f41-bc764e11bdd3", "7033759c-6642-11e6-9f41-bc764e11bdd3", "7035248c-6642-11e6-9f41-bc764e11bdd3"], "trace_id": "701c5b00-6642-11e6-9aa2-6117a1834a25", "type": "lock_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "id": "702382cc-6642-11e6-9f41-bc764e11bdd3", "key": "1471633200", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634621.662894, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Locking \"dev\"", "description": "Lock \"dev\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701c5b00-6642-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:18:41.662894Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "chef_solo_binding_lock", "job_id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "701c5b00-6642-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "702382cc-6642-11e6-9f41-bc764e11bdd3", "id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "key": "1471633200", "responses": [], "queued_time": null, "host": "23.253.170.86", "result": null, "phase": "created", "created_at": 1471634621.767414, "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:701c5b00-6642-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:18:41.767414Z%27,mode:quick,to:%27now%27))", "type": "chef_solo_binding_lock", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/702382cc-6642-11e6-9f41-bc764e11bdd3' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 71755b50-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634621.817734, "task_ids": ["7027708a-6642-11e6-9f41-bc764e11bdd3", "7033759c-6642-11e6-9f41-bc764e11bdd3", "7035248c-6642-11e6-9f41-bc764e11bdd3"], "trace_id": "701c5b00-6642-11e6-9aa2-6117a1834a25", "type": "lock_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "id": "702382cc-6642-11e6-9f41-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634621.662894, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Locking \"dev\"", "description": "Lock \"dev\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:701c5b00-6642-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:18:41.662894Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "build": {"url": "job/chef_solo_binding_lock/78/", "number": 78, "phase": "STARTED", "estimated_duration": 8320, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/chef_solo_binding_lock/78/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "chef_solo_binding_lock", "job_id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "queued_at": 1471634621.875988, "responses": [{"code": 201, "body": "Successfully queued chef_solo_binding_lock", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634623.486817, "trace_id": "701c5b00-6642-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "702382cc-6642-11e6-9f41-bc764e11bdd3", "id": "7033759c-6642-11e6-9f41-bc764e11bdd3", "key": "1471633200", "queued_time": 1.6108288764953613, "host": "23.253.170.86", "result": null, "phase": "started", "created_at": 1471634621.767414, "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:701c5b00-6642-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:18:41.767414Z%27,mode:quick,to:%27now%27))", "type": "chef_solo_binding_lock", "build_url": "https://23.253.170.86:8090/jenkins/job/chef_solo_binding_lock/78/", "messages": {"2016-08-19T19:23:43.920560": {"message": "Successfully queued chef_solo_binding_lock", "level": "INFO"}}}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"unlock_environment","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:24:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 892e81e0-6642-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634663.814305, "task_ids": ["893483f6-6642-11e6-836c-bc764e1141f9", "893d2f92-6642-11e6-836c-bc764e1141f9", "893ee986-6642-11e6-836c-bc764e1141f9"], "trace_id": "892e81e0-6642-11e6-ad69-5f4c0d99879d", "type": "unlock_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "893d2f92-6642-11e6-836c-bc764e1141f9", "id": "8932d8a8-6642-11e6-836c-bc764e1141f9", "key": "1471633200", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634663.706436, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Unlocking \"dev\"", "description": "Unlock \"dev\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:892e81e0-6642-11e6-ad69-5f4c0d99879d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:19:23.706436Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "chef_solo_binding_lock", "job_id": "893d2f92-6642-11e6-836c-bc764e1141f9", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "892e81e0-6642-11e6-ad69-5f4c0d99879d", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "8932d8a8-6642-11e6-836c-bc764e1141f9", "id": "893d2f92-6642-11e6-836c-bc764e1141f9", "key": "1471633200", "responses": [], "queued_time": null, "host": "23.253.170.86", "result": null, "phase": "created", "created_at": 1471634663.774197, "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:892e81e0-6642-11e6-ad69-5f4c0d99879d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:19:23.774197Z%27,mode:quick,to:%27now%27))", "type": "chef_solo_binding_lock", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/8932d8a8-6642-11e6-836c-bc764e1141f9' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:24:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8a596d50-6642-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634663.814305, "task_ids": ["893483f6-6642-11e6-836c-bc764e1141f9", "893d2f92-6642-11e6-836c-bc764e1141f9", "893ee986-6642-11e6-836c-bc764e1141f9"], "trace_id": "892e81e0-6642-11e6-ad69-5f4c0d99879d", "type": "unlock_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "893d2f92-6642-11e6-836c-bc764e1141f9", "id": "8932d8a8-6642-11e6-836c-bc764e1141f9", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471634663.706436, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Unlocking \"dev\"", "description": "Unlock \"dev\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:892e81e0-6642-11e6-ad69-5f4c0d99879d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:19:23.706436Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "build": {"url": "job/chef_solo_binding_lock/79/", "number": 79, "phase": "STARTED", "estimated_duration": 8558, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/chef_solo_binding_lock/79/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "23.253.170.86", "task_type": "chef_solo_binding_lock", "job_id": "893d2f92-6642-11e6-836c-bc764e1141f9", "binding_id": "0bc33e0b7b37462cad40e081d5173721"}, "queued_at": 1471634663.86178, "responses": [{"code": 201, "body": "Successfully queued chef_solo_binding_lock", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471634665.190615, "trace_id": "892e81e0-6642-11e6-ad69-5f4c0d99879d", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "8932d8a8-6642-11e6-836c-bc764e1141f9", "id": "893d2f92-6642-11e6-836c-bc764e1141f9", "key": "1471633200", "queued_time": 1.3288350105285645, "host": "23.253.170.86", "result": null, "phase": "started", "created_at": 1471634663.774197, "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:892e81e0-6642-11e6-ad69-5f4c0d99879d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:19:23.774197Z%27,mode:quick,to:%27now%27))", "type": "chef_solo_binding_lock", "build_url": "https://23.253.170.86:8090/jenkins/job/chef_solo_binding_lock/79/", "messages": {"2016-08-19T19:24:25.679229": {"message": "Successfully queued chef_solo_binding_lock", "level": "INFO"}}}}' diff --git a/tests/fixtures/lock-info.yml b/tests/fixtures/lock-info.yml deleted file mode 100644 index 7370bdd1d..000000000 --- a/tests/fixtures/lock-info.yml +++ /dev/null @@ -1,181 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6e0c423a-6642-11e6-8db8-bc764e105ecb:gM31VvAaCudlP14wY4c8s' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:54 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 76e08880-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1","expires_at":1474053834,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:55 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 78339560-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:56 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 78b5e4c0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:56 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: 78f14010-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:23:57 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 794664f0-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": "pantheon", "password": "password", "locked": true}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' diff --git a/tests/fixtures/machine-token-delete.yml b/tests/fixtures/machine-token-delete.yml deleted file mode 100644 index 10d000ad1..000000000 --- a/tests/fixtures/machine-token-delete.yml +++ /dev/null @@ -1,146 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:48 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 5e05b5c0-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/machine_tokens' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:49 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5e80b220-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"id": "dcr_q4tFMiYiK9DfJO15", "device_name": "Behat Testing Token"}]' -- - request: - method: DELETE - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/machine_tokens/dcr_q4tFMiYiK9DfJO15' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5dd1c454-6407-11e6-a988-bc764e11bdd3:6dZgJZAXM3SHMQpZy0gBC' - verify: '1' - method: delete - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5f14b4c0-6407-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '"OK."' diff --git a/tests/fixtures/machine-token-list-empty.yml b/tests/fixtures/machine-token-list-empty.yml deleted file mode 100644 index 2118493b3..000000000 --- a/tests/fixtures/machine-token-list-empty.yml +++ /dev/null @@ -1,112 +0,0 @@ - - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:45 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 5c2d2530-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/machine_tokens' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5cbe41a0-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/machine-token-list.yml b/tests/fixtures/machine-token-list.yml deleted file mode 100644 index 9eae41f3d..000000000 --- a/tests/fixtures/machine-token-list.yml +++ /dev/null @@ -1,112 +0,0 @@ - - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:45 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 5c2d2530-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/machine_tokens' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5bee3c9e-6407-11e6-b486-bc764e11bdd3:qCobYsXyjiH835IVddp7f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:15:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5cbe41a0-6407-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"id": "dcr_q4tFMiYiK9DfJO15", "device_name": "Behat Testing Token"}]' diff --git a/tests/fixtures/metrics.yml b/tests/fixtures/metrics.yml deleted file mode 100644 index 054a1328f..000000000 --- a/tests/fixtures/metrics.yml +++ /dev/null @@ -1,251 +0,0 @@ - -- - 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/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88d9e33c-3e2d-11e8-83d1-42010a800160:2cbENZMj8sE6GmI6MoXmb' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 1d37cad0-3e33-11e8-b465-87b7dd69fadf - 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:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9","expires_at":1525944189,"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/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:10 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1e319420-3e33-11e8-8ab7-e1cff6c913e9 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:11 GMT' - Content-Type: application/json - Content-Length: '12856' - Connection: keep-alive - X-Pantheon-Trace-Id: 1eab7f10-3e33-11e8-8141-c3ed6b6b6bba - 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: '{"allow_cacheserver": true, "allow_indexserver": true, "created": 1420742931, "current_num_domains": 6, "domain_lookup_rax": 1510882758, "framework": "drupal", "holder_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "holder_type": "organization", "instrument": "4319b9b4-dbdc-4206-ae00-35c9105fb7a1", "last_code_push": {"timestamp": "2018-04-12T00:36:07", "user_uuid": "d80af4ec-4442-4a39-8e73-5f0270e619e0"}, "max_num_cdes": 25, "multidev": true, "name": "behat-tests", "organization": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "owner": "7d73f088-0562-42e2-86f0-f8088b41f890", "preferred_zone": "us-central1", "service_level": "business", "service_level_updated_at": 1423171366, "upstream": {"repository_branch": "master", "machine_name": "drupal7", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0", "url": "https://github.com/pantheon-systems/drops-7.git", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "branch": "master", "repository_url": "https://github.com/pantheon-systems/drops-7.git", "type": "core", "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "label": "pantheon.io", "id": "11111111-1111-1111-1111-111111111111", "holder": {"billing_url": "https://google.com", "change_management": true, "custom_upstreams": true, "experimental_agency_organization": "no", "instrument": "4319b9b4-dbdc-4206-ae00-35c9105fb7a1", "maxdevsites": "2", "multidev": true, "name": "Pantheon Support", "org_logo": "data:image/png;base64,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", "org_logo_height": 85, "org_logo_width": 54, "service_level": "pantheon_one", "show_org_name_header": "yes", "id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "key": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "machine_name": "pantheon-support", "has_multidev": false, "support_plan": "regular_support", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "pantheon-support", "change_service_url": null, "name": "Pantheon Support", "email_domain": null, "org_logo_width": 54, "org_logo_height": 85, "base_domain": null, "billing_url": "https://google.com", "terms_of_service": null, "org_logo": "data:image/png;base64,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"}, "use_org_instrument": true, "settings": {"service_level": "pantheon_one", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": true, "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "branch": "master", "product_id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, "stunnel": false, "min_backups": 0, "owner": "7d73f088-0562-42e2-86f0-f8088b41f890", "secure_runtime_access": false, "current_num_domains": 6, "guilty_of_abuse": null, "failover_appserver": 0, "pingdom": 0, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "service_level_updated_at": 1423171366, "label": "pantheon.io", "instrument": "4319b9b4-dbdc-4206-ae00-35c9105fb7a1", "allow_read_slaves": false, "indexserver": 1, "php_version": 53, "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "multidev": true, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "domain_lookup_rax": 1510882758, "framework": "drupal", "max_total_domains": 100, "max_num_cdes": 25, "allow_indexserver": true, "preferred_zone": "us-central1", "drush_version": 5, "pingdom_chance": 0, "holder_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "name": "behat-tests", "created": 1420742931, "max_backups": 7, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "organization": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2018-04-12T00:36:07", "user_uuid": "d80af4ec-4442-4a39-8e73-5f0270e619e0"}}, "base_domain": null, "attributes": {"created": 1423337768, "hostname_limit": true, "label": "pantheon.io", "live": "0", "m3_ui": true, "name": "behat-tests", "status": "1", "status_check_last_run": "2015-07-20T21:09:02.227Z"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/pageviews?granularity=day&datapoints=2' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:13 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1fe51080-3e33-11e8-95e3-917b4cb97dab - 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: '{"timeseries": [{"timestamp": 1523318400, "value": 14606}, {"timestamp": 1523404800, "value": 10981}], "summary": null}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/visits?granularity=day&datapoints=2' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 205f70a0-3e33-11e8-b071-61d0baeb34ee - 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: '{"timeseries": [{"timestamp": 1523318400, "value": 7357}, {"timestamp": 1523404800, "value": 5569}], "summary": null}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 228fe530-3e33-11e8-8141-c3ed6b6b6bba - 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: '{"iodesign": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1516313533, "dns_zone": "pantheonsite.io", "randseed": "F0R9CKJNH4L7LPY7BU8VEVP852LILCDP", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "a023a31f72506266de0a42a2edb29d6c74325fe6", "target_ref": "refs/heads/iodesign", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "con-jpg": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1512510813, "dns_zone": "pantheonsite.io", "randseed": "0WGLG472ZJTPNY9OF4KY3L7DB22TZDTG", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "0eb1d9771045bbf686fcb533a8c9ea8ff4ba8975", "target_ref": "refs/heads/con-jpg", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "emily": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1520980329, "dns_zone": "pantheonsite.io", "randseed": "U0XBOHDPUWAEL7633Z6S447YZIH2KT85", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "6463a6286185642590a39be3606914318a838597", "target_ref": "refs/heads/emily", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "cdnmap": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1520011140, "dns_zone": "pantheonsite.io", "randseed": "XJW14OL4FY9V90C249AFC671QIY5GBUO", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "91bd46ff863f35da89113e8324afb3c33a26f747", "target_ref": "refs/heads/cdnmap", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "dev": {"quicksilver_configuration": {}, "diffstat": {}, "lock": {"username": null, "password": null, "locked": false}, "target_ref": "refs/heads/master", "on_server_development": false, "environment_created": 1420742932, "dns_zone": "pantheonsite.io", "php_version": "70", "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "styx_cluster": "styx-fe4.pantheon.io", "maintenance": {"enabled": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "is_initialized": true, "watchers": 1, "randseed": "0Y73HKQ0NTAN1ULACMM2BZP5EALXUIAJ", "target_commit": "2891296d013908a9aeac93ca46c5232645487e92", "drush_version": 8}, "live": {"lock": {"username": null, "password": null, "locked": false}, "target_ref": "refs/tags/pantheon_live_593", "pingdom": 1, "environment_created": 1420742934, "dns_zone": "pantheonsite.io", "maintenance": {"enabled": false}, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "ssl_enabled": false, "styx_cluster": "styx-fe2.pantheon.io", "dedicated_ip": false, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "php_version": "70", "is_initialized": true, "randseed": "ME9R0XP9QX7Y4TXWY6DOU3APT2HBXRSW", "number_allow_domains": 7, "target_commit": "2891296d013908a9aeac93ca46c5232645487e92", "drush_version": 8}, "pr-154": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1522868316, "dns_zone": "pantheonsite.io", "randseed": "J5WVUW4U2AFRDSRXNS051IDQEUQEYJNZ", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "3092f57d41d816b84e18053a6a9ab01800d31518", "target_ref": "refs/heads/pr-154", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-377": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1523470391, "dns_zone": "pantheonsite.io", "randseed": "PWU2Y538MESXVP0DXFV4I3T8TB8KHT7K", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "e03ad70b66a003ea942c95c7af6f32c76dd57de6", "target_ref": "refs/heads/pr-377", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-121": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1522870156, "dns_zone": "pantheonsite.io", "randseed": "WUNS3F8Z52RABXCO1M26XB70RMZFOXOA", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "67bb5516938427f3466cdf6cbfda2abf4c293b57", "target_ref": "refs/heads/pr-121", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "test": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "php_version": "70", "environment_created": 1420742933, "dns_zone": "pantheonsite.io", "randseed": "WV4WJFX07YBIHIMHMHBOB4CGLBA1264N", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "2891296d013908a9aeac93ca46c5232645487e92", "target_ref": "refs/tags/pantheon_test_703", "maintenance": {"enabled": false}, "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-378": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1523471047, "dns_zone": "pantheonsite.io", "randseed": "PW9971ISVD71NPMYIQ7LF9Q7NZHIE2RZ", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "52013b9071474b48856df3076b0717b5c97e1719", "target_ref": "refs/heads/pr-378", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pricing2": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1522288390, "dns_zone": "pantheonsite.io", "randseed": "IVP5WFR8VTYYQRRP70QRPQB82BX2S82S", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "46e1be81192f9ae3c521d2cf4ecf7859cb16feca", "target_ref": "refs/heads/pricing2", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pagespeed": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1498787321, "dns_zone": "pantheonsite.io", "randseed": "MUR5DAN0KZ2VV16N1EBR2ZOD0OKZIJOQ", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "0f9cb3c4e9dad8c27853beff885a706ecc5f36d8", "target_ref": "refs/heads/pagespeed", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-135": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1522185955, "dns_zone": "pantheonsite.io", "randseed": "N9P1BCGT0ZAM9A1F4D249T4R1SXG15RL", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "e75fab8bbf2c5405d59469f212824526fab7f35e", "target_ref": "refs/heads/pr-135", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "ci-504": {"is_initialized": false, "environment_created": 1519446169, "dns_zone": "pantheonsite.io", "randseed": "HU756DOMAQWW9YLPGMV09OI4T2BT2HUC", "styx_cluster": "styx-fe4.pantheon.io", "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "css-compile": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1518479236, "dns_zone": "pantheonsite.io", "randseed": "JMTJJUF4T67UN7WNPISB7MN9S9CUU25K", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "2b40eb0646416ad467a910d21a7882ecf42117ce", "target_ref": "refs/heads/css-compile", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "menu-bug": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1523235581, "dns_zone": "pantheonsite.io", "randseed": "Z55T2BFBO1PGNIQH837XFRG14HOH0V8B", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "ad3a017b508d8ebb76bb0e695242d4c5dd5265d6", "target_ref": "refs/heads/menu-bug", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "lullabot": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1513724732, "dns_zone": "pantheonsite.io", "randseed": "75ZWWOGOZZ092M8W9ARDUCQ0U3RY83M7", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "330da9a66662b31549ce278862949e930dbc94f3", "target_ref": "refs/heads/lullabot", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "example1": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1519848684, "dns_zone": "pantheonsite.io", "randseed": "2RIR2MK8XUNTEYN1BSAK9PRQIMLCNBDR", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "66ed1648f8dce73525753b0d43fe28051d73fb21", "target_ref": "refs/heads/example1", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "stylesheet": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1503517606, "dns_zone": "pantheonsite.io", "randseed": "L0KXMI9ZAXL0X4N7T0WKUWAXPAQSYJQL", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "59cdac22b82206ac1633e8e8c9bc8eb9d504ccc7", "target_ref": "refs/heads/stylesheet", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-359": {"is_initialized": true, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "environment_created": 1523282276, "dns_zone": "pantheonsite.io", "randseed": "GY87J0XH5H0SAHFO13WZLE9P4M55UBXG", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "b7627f9623ee168217c2d1db7cb23663dc7ea964", "target_ref": "refs/heads/pr-359", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}, "pr-84": {"is_initialized": true, "watchers": 1, "styx_clusters_for_cache_clear": ["styx-03.pantheon.io", "styx-1-gcp-fastly-stub.pantheon.io", "edge.live.getpantheon.com", "styx-fe1.pantheon.io", "styx-02.pantheon.io", "styx-fe2.pantheon.io", "styx-yolo.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io"], "diffstat": {}, "on_server_development": false, "environment_created": 1520862153, "dns_zone": "pantheonsite.io", "randseed": "7G9CQZUSX5IEIVFJALYCJ5Q1PRZF41ON", "styx_cluster": "styx-fe4.pantheon.io", "target_commit": "77f16f91fa1a15ff60169d07123270aa9e9a8cbb", "target_ref": "refs/heads/pr-84", "php_version": "70", "lock": {"username": null, "password": null, "locked": false}, "environment_variables": {"drush_version": 8, "php_version": 7.0}, "drush_version": 8}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/pageviews?granularity=day&datapoints=2' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2341d010-3e33-11e8-8ab7-e1cff6c913e9 - 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: '{"timeseries": [{"timestamp": 1523318400, "value": 14431}, {"timestamp": 1523404800, "value": 10845}], "summary": null}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/live/visits?granularity=day&datapoints=2' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.8.1-dev (php_version=7.0.27&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d6842d2-3e33-11e8-83ab-42010a8000a6:LZUDCutkcrWA31p4Pg8R9' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 12 Apr 2018 09:23:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 23c88c40-3e33-11e8-b465-87b7dd69fadf - 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: '{"timeseries": [{"timestamp": 1523318400, "value": 7353}, {"timestamp": 1523404800, "value": 5565}], "summary": null}' diff --git a/tests/fixtures/multidev-create-no-db.yml b/tests/fixtures/multidev-create-no-db.yml deleted file mode 100644 index 13db7d902..000000000 --- a/tests/fixtures/multidev-create-no-db.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2cf278b0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 2d30e140-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2d8087e0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:03 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2de78710-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"multidev": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grantor": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_cloud_development_environment","params":{"environment_id":"multidev","deploy":{"clone_files":{"from_environment":"dev"},"annotation":"Create the \"multidev\" environment."}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2ece1680-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "waiting_for_task_id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Create a Multidev environment", "description": "Create a Multidev environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "multidev", "fn_name": "trigger_task", "params": {"task_type": "create_cloud_development_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": "multidev", "pool": null, "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1471990564.889985, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.889985Z%27,mode:quick,to:%27now%27))", "type": "create_cloud_development_environment", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/2ed3e768-697f-11e6-9f69-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2f8ea760-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990564.921846, "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "2f081812-697f-11e6-9f69-bc764e11227e", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Creating Multidev environment \"multidev\"", "description": "Create a Multidev environment", "step": 3, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/72418/", "number": 72418, "phase": "STARTED", "estimated_duration": 10853, "duration": 0, "full_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/"}, "environment": "multidev", "fn_name": "queue_jenkins_task", "params": {"host": "162.242.168.42", "task_type": "deploy_dbserver_binding", "job_id": "2f081812-697f-11e6-9f69-bc764e11227e", "binding_id": "3cb3e6d31f2941d7b0dbee3d4de9d14a"}, "queued_at": 1471990565.227167, "responses": [{"code": 201, "body": "Successfully queued deploy_dbserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990565.782185, "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "pantheon", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2f081812-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "queued_time": 0.5550181865692139, "host": "162.242.168.42", "result": null, "phase": "started", "created_at": 1471990565.220149, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:05.220149Z%27,mode:quick,to:%27now%27))", "type": "deploy_dbserver_binding", "build_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/", "messages": {"2016-08-23T22:16:06.154530": {"message": "Successfully queued deploy_dbserver_binding", "level": "INFO"}}}}' diff --git a/tests/fixtures/multidev-create-no-files.yml b/tests/fixtures/multidev-create-no-files.yml deleted file mode 100644 index 934c95747..000000000 --- a/tests/fixtures/multidev-create-no-files.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2cf278b0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 2d30e140-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2d8087e0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:03 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2de78710-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"multidev": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grantor": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_cloud_development_environment","params":{"environment_id":"multidev","deploy":{"clone_database":{"from_environment":"dev"},"annotation":"Create the \"multidev\" environment."}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2ece1680-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_database": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "waiting_for_task_id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Create a Multidev environment", "description": "Create a Multidev environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "multidev", "fn_name": "trigger_task", "params": {"task_type": "create_cloud_development_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": "multidev", "pool": null, "deploy": {"clone_database": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1471990564.889985, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.889985Z%27,mode:quick,to:%27now%27))", "type": "create_cloud_development_environment", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/2ed3e768-697f-11e6-9f69-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2f8ea760-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_database": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment."}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990564.921846, "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "2f081812-697f-11e6-9f69-bc764e11227e", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Creating Multidev environment \"multidev\"", "description": "Create a Multidev environment", "step": 3, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/72418/", "number": 72418, "phase": "STARTED", "estimated_duration": 10853, "duration": 0, "full_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/"}, "environment": "multidev", "fn_name": "queue_jenkins_task", "params": {"host": "162.242.168.42", "task_type": "deploy_dbserver_binding", "job_id": "2f081812-697f-11e6-9f69-bc764e11227e", "binding_id": "3cb3e6d31f2941d7b0dbee3d4de9d14a"}, "queued_at": 1471990565.227167, "responses": [{"code": 201, "body": "Successfully queued deploy_dbserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990565.782185, "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "pantheon", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2f081812-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "queued_time": 0.5550181865692139, "host": "162.242.168.42", "result": null, "phase": "started", "created_at": 1471990565.220149, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:05.220149Z%27,mode:quick,to:%27now%27))", "type": "deploy_dbserver_binding", "build_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/", "messages": {"2016-08-23T22:16:06.154530": {"message": "Successfully queued deploy_dbserver_binding", "level": "INFO"}}}}' diff --git a/tests/fixtures/multidev-create.yml b/tests/fixtures/multidev-create.yml deleted file mode 100644 index 7dd26160e..000000000 --- a/tests/fixtures/multidev-create.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2cf278b0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 2d30e140-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:02 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2d8087e0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:03 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2de78710-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"multidev": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grantor": {"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_cloud_development_environment","params":{"environment_id":"multidev","deploy":{"clone_database":{"from_environment":"dev"},"clone_files":{"from_environment":"dev"},"annotation":"Create the \"multidev\" environment."}}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2ece1680-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment.", "clone_database": {"from_environment": "dev"}}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "waiting_for_task_id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Create a Multidev environment", "description": "Create a Multidev environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "multidev", "fn_name": "trigger_task", "params": {"task_type": "create_cloud_development_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": "multidev", "pool": null, "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment.", "clone_database": {"from_environment": "dev"}}}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2ed5b70a-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1471990564.889985, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.889985Z%27,mode:quick,to:%27now%27))", "type": "create_cloud_development_environment", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/2ed3e768-697f-11e6-9f69-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2c83e6e8-697f-11e6-af37-bc764e11227e:VzkIwOdd2xeWY2eyyShMP' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:16:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2f8ea760-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {"environment_id": "multidev", "deploy": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the \"multidev\" environment.", "clone_database": {"from_environment": "dev"}}}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990564.921846, "task_ids": ["2ed5b70a-697f-11e6-9f69-bc764e11227e", "2ed7623a-697f-11e6-9f69-bc764e11227e", "2f081812-697f-11e6-9f69-bc764e11227e", "2f0a238c-697f-11e6-9f69-bc764e11227e", "2f0bb166-697f-11e6-9f69-bc764e11227e", "2f0caed6-697f-11e6-9f69-bc764e11227e", "2f15c3e0-697f-11e6-9f69-bc764e11227e", "2f16e734-697f-11e6-9f69-bc764e11227e", "2f174c60-697f-11e6-9f69-bc764e11227e", "2f1756b0-697f-11e6-9f69-bc764e11227e", "2f2154e4-697f-11e6-9f69-bc764e11227e", "2f240f36-697f-11e6-9f69-bc764e11227e", "2f2593b0-697f-11e6-9f69-bc764e11227e", "2f268d9c-697f-11e6-9f69-bc764e11227e", "2f279a84-697f-11e6-9f69-bc764e11227e", "2f289f06-697f-11e6-9f69-bc764e11227e", "2f299960-697f-11e6-9f69-bc764e11227e", "2f334618-697f-11e6-9f69-bc764e11227e", "2f39dec4-697f-11e6-9f69-bc764e11227e", "2f4050ba-697f-11e6-9f69-bc764e11227e", "2f422980-697f-11e6-9f69-bc764e11227e"], "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "type": "create_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "2f081812-697f-11e6-9f69-bc764e11227e", "id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471990564.878116, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Creating Multidev environment \"multidev\"", "description": "Create a Multidev environment", "step": 3, "has_operation_log_output": false, "number_of_tasks": 21, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:04.878116Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/72418/", "number": 72418, "phase": "STARTED", "estimated_duration": 10853, "duration": 0, "full_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/"}, "environment": "multidev", "fn_name": "queue_jenkins_task", "params": {"host": "162.242.168.42", "task_type": "deploy_dbserver_binding", "job_id": "2f081812-697f-11e6-9f69-bc764e11227e", "binding_id": "3cb3e6d31f2941d7b0dbee3d4de9d14a"}, "queued_at": 1471990565.227167, "responses": [{"code": 201, "body": "Successfully queued deploy_dbserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990565.782185, "trace_id": "2ece1680-697f-11e6-9ba8-733939e0aeaf", "user_id": "pantheon", "workflow_id": "2ed3e768-697f-11e6-9f69-bc764e11227e", "id": "2f081812-697f-11e6-9f69-bc764e11227e", "key": "1471989600", "queued_time": 0.5550181865692139, "host": "162.242.168.42", "result": null, "phase": "started", "created_at": 1471990565.220149, "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:2ece1680-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:11:05.220149Z%27,mode:quick,to:%27now%27))", "type": "deploy_dbserver_binding", "build_url": "https://162.242.168.42:8090/jenkins/job/chef_solo_bindings/72418/", "messages": {"2016-08-23T22:16:06.154530": {"message": "Successfully queued deploy_dbserver_binding", "level": "INFO"}}}}' diff --git a/tests/fixtures/multidev-delete.yml b/tests/fixtures/multidev-delete.yml deleted file mode 100644 index 78e74bb2d..000000000 --- a/tests/fixtures/multidev-delete.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5b8cdc60-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:20 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 5bcfd8d0-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5c112790-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "multidev": {"environment_created": 1471990564, "dns_zone": "onebox.pantheon.io", "randseed": "3AL7XUXH5F76SQUVEDB34YS38RC9N18Y", "target_ref": "refs/heads/multidev", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5b27534a-697f-11e6-9d18-bc764e11227e:txyiVyCuIsb0GyTpjpb65' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"delete_cloud_development_environment","params":{"environment_id":"multidev","delete_branch":false}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:17:21 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5c834a50-697f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "5c89f576-697f-11e6-af37-bc764e11227e", "finished_at": 1471990641.665275, "params": {"delete_branch": false, "environment_id": "multidev"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990641.588859, "task_ids": ["5c89f576-697f-11e6-af37-bc764e11227e"], "trace_id": "5c834a50-697f-11e6-9ba8-733939e0aeaf", "type": "delete_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.076416015625, "created_at": 1471990641.558817, "environment": null, "total_time": 0.10645818710327148, "active_description": "Deleted Multidev environment \"multidev\"", "description": "Delete a Multidev environment", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:5c834a50-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:21.558817Z%27,mode:quick,to:%272016-08-23T22:22:21.665275Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": "multidev", "finished_at": 1471990641.648348, "fn_name": "trigger_task", "params": {"delete_branch": false, "task_type": "delete_cloud_development_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": "multidev"}, "queued_at": 1471990641.588969, "responses": [{"code": 200, "body": "Deleted the environment \"multidev\".", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471990641.588976, "trace_id": "5c834a50-697f-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "5c88734a-697f-11e6-af37-bc764e11227e", "id": "5c89f576-697f-11e6-af37-bc764e11227e", "key": "1471989600", "queued_time": 6.9141387939453125e-06, "host": null, "phase": "finished", "created_at": 1471990641.568703, "allow_concurrent": false, "run_time": 0.0593721866607666, "total_time": 0.07964515686035156, "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:5c834a50-697f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:12:21.568703Z%27,mode:quick,to:%272016-08-23T22:22:21.648348Z%27))", "type": "delete_cloud_development_environment", "build_url": null, "messages": {"2016-08-23T22:17:21.681849": {"message": "Deleted the environment \"multidev\".", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/multidev-merge-from-dev.yml b/tests/fixtures/multidev-merge-from-dev.yml deleted file mode 100644 index 07caeda84..000000000 --- a/tests/fixtures/multidev-merge-from-dev.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:27:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0fa66680-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:27:41 GMT' - Content-Type: application/json - Content-Length: '3578' - Connection: keep-alive - X-Pantheon-Trace-Id: 0fdf02b0-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:27:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 101ccf00-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "multidev": {"environment_created": 1472059582, "dns_zone": "onebox.pantheon.io", "randseed": "ZUX3IW0FAY8L7U6FZW0NGLAX7DQC0VMQ", "target_ref": "refs/heads/multidev", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/multidev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"merge_dev_into_cloud_development_environment","params":{"updatedb":false}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:09 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 42c60430-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "multidev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "42c60430-6a20-11e6-9ba8-733939e0aeaf", "params": {"updatedb": false}, "task_ids": ["42cd98c6-6a20-11e6-a905-bc764e11227e", "42cf1660-6a20-11e6-a905-bc764e11227e", "42d65de4-6a20-11e6-a905-bc764e11227e"], "role": "owner", "type": "merge_dev_into_cloud_development_environment", "id": "42cb6254-6a20-11e6-a905-bc764e11227e", "key": "1472058000", "waiting_for_task_id": "42cd98c6-6a20-11e6-a905-bc764e11227e", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1472059747.350178, "reason": "", "environment": "multidev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Merge code from master into \"multidev\"", "description": "Merge code from master into \"multidev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:42c60430-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:07.350178Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "multidev", "fn_name": "trigger_task", "params": {"environment": "multidev", "task_type": "merge_code_from_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "from_environment": "dev"}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "42c60430-6a20-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "42cb6254-6a20-11e6-a905-bc764e11227e", "id": "42cd98c6-6a20-11e6-a905-bc764e11227e", "key": "1472058000", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1472059747.364679, "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:42c60430-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:07.364679Z%27,mode:quick,to:%27now%27))", "type": "merge_code_from_environment", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/42cb6254-6a20-11e6-a905-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0f395c3e-6a20-11e6-9f69-bc764e11227e:4wDUgjt6jGJLh83P6zv34' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:09 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 44234a40-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "multidev", "params": {"updatedb": false}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_ids": ["42cd98c6-6a20-11e6-a905-bc764e11227e", "42cf1660-6a20-11e6-a905-bc764e11227e", "42d65de4-6a20-11e6-a905-bc764e11227e"], "trace_id": "42c60430-6a20-11e6-9ba8-733939e0aeaf", "type": "merge_dev_into_cloud_development_environment", "user_id": "11111111-1111-1111-1111-111111111111", "id": "42cb6254-6a20-11e6-a905-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "waiting_for_task_id": "42cd98c6-6a20-11e6-a905-bc764e11227e", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1472059747.350178, "reason": "", "environment": "multidev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Merge code from master into \"multidev\"", "description": "Merge code from master into \"multidev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:42c60430-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:07.350178Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "multidev", "fn_name": "trigger_task", "params": {"environment": "multidev", "task_type": "merge_code_from_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "from_environment": "dev"}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "42c60430-6a20-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "42cb6254-6a20-11e6-a905-bc764e11227e", "id": "42cd98c6-6a20-11e6-a905-bc764e11227e", "key": "1472058000", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1472059747.364679, "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:42c60430-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:07.364679Z%27,mode:quick,to:%27now%27))", "type": "merge_code_from_environment", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/multidev-merge-to-dev.yml b/tests/fixtures/multidev-merge-to-dev.yml deleted file mode 100644 index db8183c20..000000000 --- a/tests/fixtures/multidev-merge-to-dev.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58013270-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:43 GMT' - Content-Type: application/json - Content-Length: '3578' - Connection: keep-alive - X-Pantheon-Trace-Id: 583c66b0-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58788550-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "multidev": {"environment_created": 1472059582, "dns_zone": "onebox.pantheon.io", "randseed": "ZUX3IW0FAY8L7U6FZW0NGLAX7DQC0VMQ", "target_ref": "refs/heads/multidev", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments/dev/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"merge_cloud_development_environment_into_dev","params":{"updatedb":false,"from_environment":"multidev"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58dfd2a0-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"environment_id": "dev", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "58dfd2a0-6a20-11e6-9ba8-733939e0aeaf", "params": {"updatedb": false, "from_environment": "multidev"}, "task_ids": ["58e7201e-6a20-11e6-93dc-bc764e11227e", "58e859a2-6a20-11e6-93dc-bc764e11227e", "58efebfe-6a20-11e6-93dc-bc764e11227e", "58f126ea-6a20-11e6-93dc-bc764e11227e", "58f28300-6a20-11e6-93dc-bc764e11227e", "58f9dae2-6a20-11e6-93dc-bc764e11227e"], "role": "owner", "type": "merge_cloud_development_environment_into_dev", "id": "58e51850-6a20-11e6-93dc-bc764e11227e", "key": "1472058000", "waiting_for_task_id": "58e7201e-6a20-11e6-93dc-bc764e11227e", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1472059784.428552, "reason": "", "environment": "dev", "final_task_id": null, "result": null, "total_time": null, "active_description": "Merge code into master", "description": "Merge code into master", "step": 1, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:58dfd2a0-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:44.428552Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "dev", "fn_name": "trigger_task", "params": {"environment": "dev", "task_type": "merge_code_from_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "from_environment": "multidev"}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "58dfd2a0-6a20-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "58e51850-6a20-11e6-93dc-bc764e11227e", "id": "58e7201e-6a20-11e6-93dc-bc764e11227e", "key": "1472058000", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1472059784.441859, "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:58dfd2a0-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:44.441859Z%27,mode:quick,to:%27now%27))", "type": "merge_code_from_environment", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/58e51850-6a20-11e6-93dc-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:579def9e-6a20-11e6-af37-bc764e11227e:q9U5tmSCQvQTACufGJE5w' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:29:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 59f2f050-6a20-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"updatedb": false, "from_environment": "multidev"}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_ids": ["58e7201e-6a20-11e6-93dc-bc764e11227e", "58e859a2-6a20-11e6-93dc-bc764e11227e", "58efebfe-6a20-11e6-93dc-bc764e11227e", "58f126ea-6a20-11e6-93dc-bc764e11227e", "58f28300-6a20-11e6-93dc-bc764e11227e", "58f9dae2-6a20-11e6-93dc-bc764e11227e"], "trace_id": "58dfd2a0-6a20-11e6-9ba8-733939e0aeaf", "type": "merge_cloud_development_environment_into_dev", "user_id": "11111111-1111-1111-1111-111111111111", "id": "58e51850-6a20-11e6-93dc-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "waiting_for_task_id": "58e7201e-6a20-11e6-93dc-bc764e11227e", "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1472059784.428552, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Merge code into master", "description": "Merge code into master", "step": 1, "has_operation_log_output": false, "number_of_tasks": 6, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:58dfd2a0-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:44.428552Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "dev", "fn_name": "trigger_task", "params": {"environment": "dev", "task_type": "merge_code_from_environment", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "from_environment": "multidev"}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "58dfd2a0-6a20-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "58e51850-6a20-11e6-93dc-bc764e11227e", "id": "58e7201e-6a20-11e6-93dc-bc764e11227e", "key": "1472058000", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "created", "created_at": 1472059784.441859, "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:58dfd2a0-6a20-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:24:44.441859Z%27,mode:quick,to:%27now%27))", "type": "merge_code_from_environment", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/new-relic-disable.yml b/tests/fixtures/new-relic-disable.yml deleted file mode 100644 index 220c7b507..000000000 --- a/tests/fixtures/new-relic-disable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:47:22 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 25344270-4220-11ea-a46f-1ffa60855b30 - 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:258cfc44-4220-11ea-8505-42010a800058:vcTqM66ulQGihuEOSbaQ0","expires_at":1582670842,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:258cfc44-4220-11ea-8505-42010a800058:vcTqM66ulQGihuEOSbaQ0' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:47:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 261134f0-4220-11ea-9590-c52a0942a295 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:258cfc44-4220-11ea-8505-42010a800058:vcTqM66ulQGihuEOSbaQ0' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:47:23 GMT' - Content-Type: application/json - Content-Length: '4313' - Connection: keep-alive - X-Pantheon-Trace-Id: 26427e20-4220-11ea-b5b6-2d8f925fc9ff - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580251609, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580251609, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests", "m3_ui": true}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:258cfc44-4220-11ea-8505-42010a800058:vcTqM66ulQGihuEOSbaQ0' - Accept: null - body: '{"type":"disable_new_relic_for_site","params":{"converge":true}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:48:06 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3ca31990-4220-11ea-9291-4526f2c1771d - 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: '{"params": {"converge": true}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580251681.312105, "task_ids": ["3cac2026-4220-11ea-908a-42010a800160", "3cae394c-4220-11ea-908a-42010a800160", "3d91545c-4220-11ea-908a-42010a800160", "3d9335ec-4220-11ea-908a-42010a800160", "3d9f68a8-4220-11ea-908a-42010a800160", "3da0cb30-4220-11ea-908a-42010a800160", "3e4eab7e-4220-11ea-908a-42010a800160", "3e5233c0-4220-11ea-908a-42010a800160", "3e5d85d6-4220-11ea-908a-42010a800160", "3e5e2770-4220-11ea-908a-42010a800160", "3f461a08-4220-11ea-908a-42010a800160", "3f4cdadc-4220-11ea-908a-42010a800160", "3f529710-4220-11ea-908a-42010a800160", "3f53c2d4-4220-11ea-908a-42010a800160", "3f55b8aa-4220-11ea-908a-42010a800160", "3f659734-4220-11ea-908a-42010a800160", "3f757596-4220-11ea-908a-42010a800160"], "trace_id": "3ca31990-4220-11ea-9291-4526f2c1771d", "type": "disable_new_relic_for_site", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3d91545c-4220-11ea-908a-42010a800160", "id": "3ca86c92-4220-11ea-908a-42010a800160", "key": "1580248800", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580251681.227893, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Disabling New Relic", "description": "Disable New Relic", "step": 3, "has_operation_log_output": false, "number_of_tasks": 17, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3ca31990-4220-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:43:01.227893Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580251686.171703, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "3d91545c-4220-11ea-908a-42010a800160", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "3ca31990-4220-11ea-9291-4526f2c1771d", "workflow_id": "3ca86c92-4220-11ea-908a-42010a800160", "id": "3d91545c-4220-11ea-908a-42010a800160", "key": "1580248800", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "initialized", "created_at": 1580251682.754262, "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:3ca31990-4220-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:43:02.754262Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/3ca86c92-4220-11ea-908a-42010a800160' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:258cfc44-4220-11ea-8505-42010a800058:vcTqM66ulQGihuEOSbaQ0' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:48:06 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3fd12800-4220-11ea-9114-b3a0d1957940 - 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: '{"params": {"converge": true}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580251681.312105, "task_ids": ["3cac2026-4220-11ea-908a-42010a800160", "3cae394c-4220-11ea-908a-42010a800160", "3d91545c-4220-11ea-908a-42010a800160", "3d9335ec-4220-11ea-908a-42010a800160", "3d9f68a8-4220-11ea-908a-42010a800160", "3da0cb30-4220-11ea-908a-42010a800160", "3e4eab7e-4220-11ea-908a-42010a800160", "3e5233c0-4220-11ea-908a-42010a800160", "3e5d85d6-4220-11ea-908a-42010a800160", "3e5e2770-4220-11ea-908a-42010a800160", "3f461a08-4220-11ea-908a-42010a800160", "3f4cdadc-4220-11ea-908a-42010a800160", "3f529710-4220-11ea-908a-42010a800160", "3f53c2d4-4220-11ea-908a-42010a800160", "3f55b8aa-4220-11ea-908a-42010a800160", "3f659734-4220-11ea-908a-42010a800160", "3f757596-4220-11ea-908a-42010a800160"], "trace_id": "3ca31990-4220-11ea-9291-4526f2c1771d", "type": "disable_new_relic_for_site", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3d91545c-4220-11ea-908a-42010a800160", "id": "3ca86c92-4220-11ea-908a-42010a800160", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580251681.227893, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Disabling New Relic", "description": "Disable New Relic", "step": 3, "has_operation_log_output": false, "number_of_tasks": 17, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3ca31990-4220-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:43:01.227893Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580251686.171703, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "3d91545c-4220-11ea-908a-42010a800160", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "3ca31990-4220-11ea-9291-4526f2c1771d", "workflow_id": "3ca86c92-4220-11ea-908a-42010a800160", "id": "3d91545c-4220-11ea-908a-42010a800160", "key": "1580248800", "responses": [], "queued_time": null, "host": "localhost", "result": "succeeded", "phase": "initialized", "created_at": 1580251682.754262, "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:3ca31990-4220-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:43:02.754262Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/new-relic-enable.yml b/tests/fixtures/new-relic-enable.yml deleted file mode 100644 index f0ddac74a..000000000 --- a/tests/fixtures/new-relic-enable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:46:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 0c84d500-4220-11ea-9448-45e21894f124 - 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:0ce1280a-4220-11ea-b682-42010a8001a3:KnQLq0EelpWJ42jXw411a","expires_at":1582670801,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0ce1280a-4220-11ea-b682-42010a8001a3:KnQLq0EelpWJ42jXw411a' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:46:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0d63ea60-4220-11ea-b5b6-2d8f925fc9ff - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0ce1280a-4220-11ea-b682-42010a8001a3:KnQLq0EelpWJ42jXw411a' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:46:42 GMT' - Content-Type: application/json - Content-Length: '4273' - Connection: keep-alive - X-Pantheon-Trace-Id: 0d8a3710-4220-11ea-9b1d-c16f1d5a9513 - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580251328, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580251328, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests", "m3_ui": true}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0ce1280a-4220-11ea-b682-42010a8001a3:KnQLq0EelpWJ42jXw411a' - Accept: null - body: '{"type":"enable_new_relic_for_site","params":{"converge":true}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:46:43 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0e2ba730-4220-11ea-a120-edd09d5a4bed - 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: '{"user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "0e2ba730-4220-11ea-a120-edd09d5a4bed", "params": {"converge": true}, "task_ids": ["0e32779a-4220-11ea-b563-42010a8001a3", "0e340fb0-4220-11ea-b563-42010a8001a3"], "role": "owner", "type": "enable_new_relic_for_site", "id": "0e30e3d0-4220-11ea-b563-42010a8001a3", "key": "1580248800", "waiting_for_task_id": "0e32779a-4220-11ea-b563-42010a8001a3", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1580251603.26932, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Enable New Relic", "description": "Enable New Relic", "step": 1, "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:0e2ba730-4220-11ea-a120-edd09d5a4bed%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:41:43.269320Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "fn_name": "trigger_task", "initialized_at": 1580251603.344863, "params": {"task_type": "enable_new_relic_for_site", "site_id": "11111111-1111-1111-1111-111111111111"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "0e2ba730-4220-11ea-a120-edd09d5a4bed", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "0e30e3d0-4220-11ea-b563-42010a8001a3", "id": "0e32779a-4220-11ea-b563-42010a8001a3", "key": "1580248800", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "initialized", "created_at": 1580251603.279657, "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:0e2ba730-4220-11ea-a120-edd09d5a4bed%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:41:43.279657Z%27,mode:quick,to:%27now%27))", "type": "enable_new_relic_for_site", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/0e30e3d0-4220-11ea-b563-42010a8001a3' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0ce1280a-4220-11ea-b682-42010a8001a3:KnQLq0EelpWJ42jXw411a' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 22:46:43 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0e713bb0-4220-11ea-8e1b-b5f96d10518b - 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: '{"params": {"converge": true}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "task_ids": ["0e32779a-4220-11ea-b563-42010a8001a3", "0e340fb0-4220-11ea-b563-42010a8001a3"], "trace_id": "0e2ba730-4220-11ea-a120-edd09d5a4bed", "type": "enable_new_relic_for_site", "user_id": "11111111-1111-1111-1111-111111111111", "id": "0e30e3d0-4220-11ea-b563-42010a8001a3", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "0e32779a-4220-11ea-b563-42010a8001a3", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1580251603.26932, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Enable New Relic", "description": "Enable New Relic", "step": 1, "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:0e2ba730-4220-11ea-a120-edd09d5a4bed%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:41:43.269320Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "fn_name": "trigger_task", "initialized_at": 1580251603.344863, "params": {"task_type": "enable_new_relic_for_site", "site_id": "11111111-1111-1111-1111-111111111111"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "0e2ba730-4220-11ea-a120-edd09d5a4bed", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "0e30e3d0-4220-11ea-b563-42010a8001a3", "id": "0e32779a-4220-11ea-b563-42010a8001a3", "key": "1580248800", "responses": [], "queued_time": null, "host": null, "result": "succeeded", "phase": "initialized", "created_at": 1580251603.279657, "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:0e2ba730-4220-11ea-a120-edd09d5a4bed%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:41:43.279657Z%27,mode:quick,to:%27now%27))", "type": "enable_new_relic_for_site", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/new-relic-info.yml b/tests/fixtures/new-relic-info.yml deleted file mode 100644 index d9651f1cc..000000000 --- a/tests/fixtures/new-relic-info.yml +++ /dev/null @@ -1,216 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:186268e0-6643-11e6-bb20-bc764e1022a9:8gp7gFsqodUfeGNB02sJQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:186268e0-6643-11e6-bb20-bc764e1022a9:8gp7gFsqodUfeGNB02sJQ' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:11 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 34934ed0-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO","expires_at":1474054151,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:12 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 35218510-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:13 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 35da9be0-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:13 GMT' - Content-Type: application/json - Content-Length: '3460' - Connection: keep-alive - X-Pantheon-Trace-Id: 36227a50-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3676dbe0-6643-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/new-relic' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:34d9f27c-6643-11e6-99fb-bc764e10b0ce:eDqJvZWffsJBdyOS0wFuO' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:29:15 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 36e2e420-6643-11e6-8f86-018f7b210ab3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id":1407309,"name":"behat tests","status":"pending","license_key":"c2db1ceb7d9fc48c2487081cef1de38dcf42f94c","api_key":"04d9b3cd3ba5db2a5014b243017c18df2b66bbf1f42f94c","data_access_key":"df7d129b7ab08ce9a116c00c36f312a51bac08d4f42f94c","browser_monitoring_key":"8068d55005","allow_api_access":true,"high_security":false,"testing":null,"partner_external_identifier":null,"subscription":{"id":2092110,"starts_on":"2016-08-19","expires_on":null,"annual_renewal_on":null,"products":[{"product_id":4,"name":"Pro","units":3,"price":597.0},{"product_id":10,"name":"Mobile Lite","units":null,"price":0.0},{"product_id":20,"name":"Browser Lite","units":0,"price":0.0},{"product_id":15,"name":"Insights Free","units":null,"price":0.0},{"product_id":23,"name":"Synthetics Lite","units":0,"price":0.0}]},"primary admin":{"id":1689132,"email":"devuser@pantheon.io","first_name":"Dev","last_name":"User","state":"pending"}}' diff --git a/tests/fixtures/org-list-empty.yml b/tests/fixtures/org-list-empty.yml deleted file mode 100644 index 2d3eb6db7..000000000 --- a/tests/fixtures/org-list-empty.yml +++ /dev/null @@ -1,141 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 61eed5c0-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"TXhqeyNUGHorQjveMSHcew=="' - Vary: Accept-Encoding - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "key": "11111111-1111-1111-1111-111111111111", "site_id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"created_by_user_id": "11111111-1111-1111-1111-111111111111", "user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "48d195ce-ea2c-4cbb-aa61-5762e211d238", "longname": "Drupal 7"}, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "another-site", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "created": 1455914106, "upstream_updates_by_environment": {"remote_head": "48b947314d790ed60d70c501b6fb3343c4f156e0", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 1, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "drush_version": 8, "last_code_push": {"timestamp": "2016-02-19T20:35:16", "user_uuid": null}, "framework": "drupal", "holder_type": "user", "service_level": "free", "php_version": 55, "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "48d195ce-ea2c-4cbb-aa61-5762e211d238", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "Another Site"}, "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "preferred_zone": "onebox", "product_id": "48d195ce-ea2c-4cbb-aa61-5762e211d238"}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "key": "11111111-1111-1111-1111-111111111111", "site_id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "longname": "WordPress"}, "service_level": "pro", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "upstream_updates_by_environment": {"remote_head": "22239d8dc2e2d99cdc10d9607063dc93f7991bb8", "ahead": 3, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 1, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "purchased_at": 1455748314, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "behat-tests"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Organization Name", "email_domain": null, "org_logo_width": null, "org_logo_height": null, "base_domain": null, "billing_url": "http://tesladethray.com", "terms_of_service": null, "org_logo": null}, "id": "11111111-1111-1111-1111-111111111111"}, "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "preferred_zone": "onebox", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1455747783, "instrument": "ad82f83d-ea58-4c23-b05a-23d0f3112232", "holder_type": "organization", "php_version": 53, "organization": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-02-20T00:48:34", "user_uuid": null}}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 62bbc2b0-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"uev1Wg1fBkJUzUckcXad1g=="' - Vary: Accept-Encoding - body: '' diff --git a/tests/fixtures/org-list.yml b/tests/fixtures/org-list.yml deleted file mode 100644 index ada2e772d..000000000 --- a/tests/fixtures/org-list.yml +++ /dev/null @@ -1,207 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 61eed5c0-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"TXhqeyNUGHorQjveMSHcew=="' - Vary: Accept-Encoding - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "key": "11111111-1111-1111-1111-111111111111", "site_id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"created_by_user_id": "11111111-1111-1111-1111-111111111111", "user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "48d195ce-ea2c-4cbb-aa61-5762e211d238", "longname": "Drupal 7"}, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "another-site", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "created": 1455914106, "upstream_updates_by_environment": {"remote_head": "48b947314d790ed60d70c501b6fb3343c4f156e0", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 1, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/drops-7.git"}, "drush_version": 8, "last_code_push": {"timestamp": "2016-02-19T20:35:16", "user_uuid": null}, "framework": "drupal", "holder_type": "user", "service_level": "free", "php_version": 55, "upstream": {"url": "https://github.com/pantheon-systems/drops-7.git", "product_id": "48d195ce-ea2c-4cbb-aa61-5762e211d238", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "Another Site"}, "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "c1c045bd-7d12-4030-a921-74d7d6b6752a", "preferred_zone": "onebox", "product_id": "48d195ce-ea2c-4cbb-aa61-5762e211d238"}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "key": "11111111-1111-1111-1111-111111111111", "site_id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "longname": "WordPress"}, "service_level": "pro", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "upstream_updates_by_environment": {"remote_head": "22239d8dc2e2d99cdc10d9607063dc93f7991bb8", "ahead": 3, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 1, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "purchased_at": 1455748314, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "behat-tests"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Organization Name", "email_domain": null, "org_logo_width": null, "org_logo_height": null, "base_domain": null, "billing_url": "http://tesladethray.com", "terms_of_service": null, "org_logo": null}, "id": "11111111-1111-1111-1111-111111111111"}, "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "preferred_zone": "onebox", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1455747783, "instrument": "ad82f83d-ea58-4c23-b05a-23d0f3112232", "holder_type": "organization", "php_version": 53, "organization": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-02-20T00:48:34", "user_uuid": null}}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 62bbc2b0-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"uev1Wg1fBkJUzUckcXad1g=="' - Vary: Accept-Encoding - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "c44e5de1-77b5-4151-b89f-9f548c5d909e", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "c44e5de1-77b5-4151-b89f-9f548c5d909e", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "anotherorg", "change_service_url": null, "name": "AnotherOrg", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "c44e5de1-77b5-4151-b89f-9f548c5d909e"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "enterpriseorg", "change_service_url": null, "name": "Organization Name", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": "http://tesladethray.com", "terms_of_service": null, "org_logo": null}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/c44e5de1-77b5-4151-b89f-9f548c5d909e/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 62fe22e0-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"2-d4cbb29"' - Vary: Accept-Encoding - body: '[]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Mon, 22 Feb 2016 21:44:02 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 633a1a70-d9ad-11e5-90b4-bd642d89c822 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - ETag: 'W/"H3/lKOhvI4Pe9ydzRRGpZg=="' - Vary: Accept-Encoding - body: '[{"archived": false, "invited_by_id": null, "role": "team_member", "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "longname": "WordPress"}, "service_level": "pro", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1455227708, "google_adwords_pushed_code_do_send": null, "utm_content": "", "experiments": {"welcome_video": "not_shown"}, "full_name": "Dev User", "utm_device": "", "web_services_business": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1453339165, "google_adwords_account_registered_sent": 1452276197, "invites_to_user": 13, "utm_medium": "", "job_function": "", "tracking_first_workflow_in_live": 1452816101, "google_adwords_account_registered_do_send": null, "tracking_first_team_invite": 1452276332, "firstname": "Dev", "invites_to_site": 1, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1453835175, "last-org-spinup": "11111111-1111-1111-1111-111111111111", "tracking_first_site_create": 1452728901, "guilty_of_abuse": null, "invites_to_org": 12, "tracking_first_site_upgrade": 1452723003, "google_adwords_paid_for_site_sent": 1452723155, "modified": 1452276194, "maxdevsites": 2, "lead_type": "", "organization": ""}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "upstream_updates_by_environment": {"remote_head": "22239d8dc2e2d99cdc10d9607063dc93f7991bb8", "ahead": 3, "remote_branch": "refs/remotes/origin/master", "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "behind": 1, "has_code": true, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "purchased_at": 1455748314, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "behat-tests"}, "holder": {"profile": {"machine_name": null, "change_service_url": null, "name": "Organization Name", "email_domain": null, "org_logo_width": null, "org_logo_height": null, "base_domain": null, "billing_url": "http://tesladethray.com", "terms_of_service": null, "org_logo": null}, "id": "11111111-1111-1111-1111-111111111111"}, "id": "1cdaa6fa-9898-4f46-afb5-d372d2f6edf6", "preferred_zone": "onebox", "product_id": "327f0b1b-b39a-4be4-8528-e20c4fe29d75", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1455747783, "instrument": "ad82f83d-ea58-4c23-b05a-23d0f3112232", "holder_type": "organization", "php_version": 53, "organization": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-02-20T00:48:34", "user_uuid": null}}, "tags": []}]' diff --git a/tests/fixtures/org-people-add.yml b/tests/fixtures/org-people-add.yml deleted file mode 100644 index 9de6e90fa..000000000 --- a/tests/fixtures/org-people-add.yml +++ /dev/null @@ -1,218 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 24dcba60-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 25199c50-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"change_management": true, "multidev": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "organizaiton"}, "grantor": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "organization"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P2", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2481b3fe-697e-11e6-93dc-bc764e11227e:sPTTAyYlvInHM80bj0kHP' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"add_organization_user_membership","params":{"user_email":"otheruser@pantheon.io","role":"team_member"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 25539810-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"organization_id": "11111111-1111-1111-1111-111111111111", "params": {"role": "team_member", "user_email": "otheruser@pantheon.io"}, "role": "admin", "task_ids": ["25586c46-697e-11e6-94c2-bc764e11227e"], "trace_id": "25539810-697e-11e6-9ba8-733939e0aeaf", "type": "add_organization_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990119.491912, "reason": "", "finished_at": 1471990121.948837, "waiting_for_task_id": null, "result": "succeeded", "final_task_id": "25586c46-697e-11e6-94c2-bc764e11227e", "id": "11111111-1111-1111-1111-111111111111", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 2.4569251537323, "created_at": 1471990119.469485, "environment": null, "total_time": 2.4793519973754883, "active_description": "Added \"otheruser@pantheon.io\" to the organization", "description": "Add a user to an organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:25539810-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:03:39.469485Z%27,mode:quick,to:%272016-08-23T22:13:41.948837Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"finished_at": 1471990121.919682, "fn_name": "trigger_task", "organization_id": "11111111-1111-1111-1111-111111111111", "params": {"organization_id": "11111111-1111-1111-1111-111111111111", "task_type": "add_organization_user_membership", "role": "team_member", "user_email": "otheruser@pantheon.io"}, "queued_at": 1471990119.492027, "responses": [{"code": 200, "body": "Sent new organization membership email to ''otheruser@pantheon.io''", "error_details": "", "internal_reason": ""}, {"code": 201, "body": {"invited_by_id": "11111111-1111-1111-1111-111111111111", "archived": false, "role": "team_member", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "started_at": 1471990119.492031, "trace_id": "25539810-697e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "25586c46-697e-11e6-94c2-bc764e11227e", "key": "1471989600", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1471990119.472647, "allow_concurrent": false, "run_time": 2.4276509284973145, "total_time": 2.447035074234009, "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:25539810-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:03:39.472647Z%27,mode:quick,to:%272016-08-23T22:13:41.919682Z%27))", "type": "add_organization_user_membership", "build_url": null, "messages": {"2016-08-23T22:08:41.966156": {"message": "Sent new organization membership email to ''otheruser@pantheon.io''", "level": "INFO"}, "2016-08-23T22:08:41.966180": {"message": {"invited_by_id": "11111111-1111-1111-1111-111111111111", "archived": false, "role": "team_member", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false}, "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"bucket": "onebox-pantheon-backups", "key": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz"}, "role": "team_member", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432743.304635, "task_ids": ["3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "3de97a00-9afe-11e6-bab2-bc764e1141f9", "3deacdec-9afe-11e6-bab2-bc764e1141f9", "3dec609e-9afe-11e6-bab2-bc764e1141f9"], "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "type": "restore_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1477432742.742033, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Restoring files in \"dev\"", "description": "Restore files on \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:02.742033Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/restore_site/39952/", "number": 39952, "phase": "STARTED", "estimated_duration": 1300, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz", "code": "", "job_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "database": "", "bucket": "onebox-pantheon-backups", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "restore_site", "env": "dev"}, "queued_at": 1477432743.305127, "responses": [{"code": 201, "body": "Successfully queued restore_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432747.469298, "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "key": "1477429200", "queued_time": 4.164170980453491, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1477432743.031912, "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:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:03.031912Z%27,mode:quick,to:%27now%27))", "type": "restore_site", "build_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/", "messages": {"2016-10-25T21:59:08.136844": {"message": "Successfully queued restore_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/org-people-list.yml b/tests/fixtures/org-people-list.yml deleted file mode 100644 index 4cfef6577..000000000 --- a/tests/fixtures/org-people-list.yml +++ /dev/null @@ -1,145 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:12:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a18ff220-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:12:08 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a1d00860-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "developer", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false, "user": {"profile": {"utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1463783873, "verify": 1, "utm_device": "", "utm_medium": "", "job_function": "-- Please Select --", "google_adwords_account_registered_do_send": null, "firstname": "Dev", "utm_term": "", "lastname": "User", "pda_campaign": null, "utm_source": "", "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "dtl": "", "modified": 1463779435, "maxdevsites": 2, "google_adwords_account_registered_sent": 1463779438, "organization": null}, "verified": true, "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "email": "otheruser@pantheon.io"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "verified": true, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}]' diff --git a/tests/fixtures/org-people-remove.yml b/tests/fixtures/org-people-remove.yml deleted file mode 100644 index 9880af2e9..000000000 --- a/tests/fixtures/org-people-remove.yml +++ /dev/null @@ -1,218 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 27a0e370-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 27e7fe90-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false, "user": {"profile": {"utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1463783873, "verify": 1, "utm_device": "", "utm_medium": "", "job_function": "-- Please Select --", "google_adwords_account_registered_do_send": null, "firstname": "Dev", "utm_term": "", "lastname": "User", "pda_campaign": null, "utm_source": "", "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "dtl": "", "modified": 1463779435, "maxdevsites": 2, "google_adwords_account_registered_sent": 1463779438, "organization": null}, "verified": true, "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "email": "otheruser@pantheon.io"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 12, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 7, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 6, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "verified": true, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}]' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:2744fd44-697e-11e6-85f8-bc764e11227e:hy7nxzZ6QNkYfOTdO6GEX' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"remove_organization_user_membership","params":{"user_id":"a7926bb1-9490-46eb-b580-2e80cdf9fd11"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:08:44 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 28294d50-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"organization_id": "11111111-1111-1111-1111-111111111111", "params": {"user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11"}, "role": "admin", "task_ids": ["282e1cd6-697e-11e6-83ff-bc764e11227e"], "trace_id": "28294d50-697e-11e6-9ba8-733939e0aeaf", "type": "remove_organization_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990124.253181, "reason": "", "finished_at": 1471990124.278844, "waiting_for_task_id": null, "result": "succeeded", "final_task_id": "282e1cd6-697e-11e6-83ff-bc764e11227e", "id": "11111111-1111-1111-1111-111111111111", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.025663137435913086, "created_at": 1471990124.22333, "environment": null, "total_time": 0.05551409721374512, "active_description": "Removed user from the organization", "description": "Remove a user from an organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:28294d50-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:03:44.223330Z%27,mode:quick,to:%272016-08-23T22:13:44.278844Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"finished_at": 1471990124.264119, "fn_name": "trigger_task", "organization_id": "11111111-1111-1111-1111-111111111111", "params": {"organization_id": "11111111-1111-1111-1111-111111111111", "task_type": "remove_organization_user_membership", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11"}, "queued_at": 1471990124.25332, "responses": [{"code": 200, "body": "User a7926bb1-9490-46eb-b580-2e80cdf9fd11 has been removed from organization 11111111-1111-1111-1111-111111111111", "error_details": "", "internal_reason": ""}], "result": "succeeded", "started_at": 1471990124.253325, "trace_id": "28294d50-697e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "282e1cd6-697e-11e6-83ff-bc764e11227e", "key": "1471989600", "queued_time": 5.0067901611328125e-06, "host": null, "phase": "finished", "created_at": 1471990124.228527, "allow_concurrent": false, "run_time": 0.010793924331665039, "total_time": 0.035591840744018555, "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:28294d50-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:03:44.228527Z%27,mode:quick,to:%272016-08-23T22:13:44.264119Z%27))", "type": "remove_organization_user_membership", "build_url": null, "messages": {"2016-08-23T22:08:44.290325": {"message": "User a7926bb1-9490-46eb-b580-2e80cdf9fd11 has been removed from organization 11111111-1111-1111-1111-111111111111", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"bucket": "onebox-pantheon-backups", "key": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz"}, "role": "team_member", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432743.304635, "task_ids": ["3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "3de97a00-9afe-11e6-bab2-bc764e1141f9", "3deacdec-9afe-11e6-bab2-bc764e1141f9", "3dec609e-9afe-11e6-bab2-bc764e1141f9"], "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "type": "restore_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1477432742.742033, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Restoring files in \"dev\"", "description": "Restore files on \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:02.742033Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/restore_site/39952/", "number": 39952, "phase": "STARTED", "estimated_duration": 1300, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz", "code": "", "job_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "database": "", "bucket": "onebox-pantheon-backups", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "restore_site", "env": "dev"}, "queued_at": 1477432743.305127, "responses": [{"code": 201, "body": "Successfully queued restore_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432747.469298, "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "key": "1477429200", "queued_time": 4.164170980453491, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1477432743.031912, "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:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:03.031912Z%27,mode:quick,to:%27now%27))", "type": "restore_site", "build_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/", "messages": {"2016-10-25T21:59:08.136844": {"message": "Successfully queued restore_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/org-people-role.yml b/tests/fixtures/org-people-role.yml deleted file mode 100644 index ba5e3d7e8..000000000 --- a/tests/fixtures/org-people-role.yml +++ /dev/null @@ -1,253 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:10:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 7490c7e0-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:10:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 74cebb40-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false, "user": {"profile": {"utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1463783873, "verify": 1, "utm_device": "", "utm_medium": "", "job_function": "-- Please Select --", "google_adwords_account_registered_do_send": null, "firstname": "Dev", "utm_term": "", "lastname": "User", "pda_campaign": null, "utm_source": "", "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "dtl": "", "modified": 1463779435, "maxdevsites": 2, "google_adwords_account_registered_sent": 1463779438, "organization": null}, "verified": true, "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "email": "otheruser@pantheon.io"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "verified": true, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:10:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 75103110-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"change_management": true, "multidev": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "organizaiton"}, "grantor": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "organization"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P2", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:743341a6-697e-11e6-9d18-bc764e11227e:i5WGWcjz3IF4aNtKkdU47' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"update_organization_user_membership","params":{"user_id":"a7926bb1-9490-46eb-b580-2e80cdf9fd11","role":"developer"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:10:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 754e7290-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"organization_id": "11111111-1111-1111-1111-111111111111", "params": {"role": "developer", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11"}, "role": "admin", "task_ids": ["75533f46-697e-11e6-94c2-bc764e11227e"], "trace_id": "754e7290-697e-11e6-9ba8-733939e0aeaf", "type": "update_organization_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471990253.676365, "reason": "", "finished_at": 1471990253.712463, "waiting_for_task_id": null, "result": "succeeded", "final_task_id": "75533f46-697e-11e6-94c2-bc764e11227e", "id": "11111111-1111-1111-1111-111111111111", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.03609800338745117, "created_at": 1471990253.653199, "environment": null, "total_time": 0.05926394462585449, "active_description": "Updated role to \"developer\"", "description": "Update a user role in an organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:754e7290-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:05:53.653199Z%27,mode:quick,to:%272016-08-23T22:15:53.712463Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"finished_at": 1471990253.695604, "fn_name": "trigger_task", "organization_id": "11111111-1111-1111-1111-111111111111", "params": {"organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "task_type": "update_organization_user_membership", "role": "developer"}, "queued_at": 1471990253.676477, "responses": [{"code": 200, "body": {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "developer", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "started_at": 1471990253.676481, "trace_id": "754e7290-697e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "75533f46-697e-11e6-94c2-bc764e11227e", "key": "1471989600", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1471990253.656455, "allow_concurrent": false, "run_time": 0.019123077392578125, "total_time": 0.03914904594421387, "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:754e7290-697e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:05:53.656455Z%27,mode:quick,to:%272016-08-23T22:15:53.695604Z%27))", "type": "update_organization_user_membership", "build_url": null, "messages": {"2016-08-23T22:10:53.725420": {"message": {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "developer", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "admin": false}, "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"bucket": "onebox-pantheon-backups", "key": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz"}, "role": "team_member", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432743.304635, "task_ids": ["3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "3de97a00-9afe-11e6-bab2-bc764e1141f9", "3deacdec-9afe-11e6-bab2-bc764e1141f9", "3dec609e-9afe-11e6-bab2-bc764e1141f9"], "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "type": "restore_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1477432742.742033, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Restoring files in \"dev\"", "description": "Restore files on \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:02.742033Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/restore_site/39952/", "number": 39952, "phase": "STARTED", "estimated_duration": 1300, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz", "code": "", "job_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "database": "", "bucket": "onebox-pantheon-backups", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "restore_site", "env": "dev"}, "queued_at": 1477432743.305127, "responses": [{"code": 201, "body": "Successfully queued restore_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432747.469298, "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "key": "1477429200", "queued_time": 4.164170980453491, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1477432743.031912, "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:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:03.031912Z%27,mode:quick,to:%27now%27))", "type": "restore_site", "build_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/", "messages": {"2016-10-25T21:59:08.136844": {"message": "Successfully queued restore_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/org-people-site-list-empty.yml b/tests/fixtures/org-people-site-list-empty.yml deleted file mode 100644 index 06ba6cca3..000000000 --- a/tests/fixtures/org-people-site-list-empty.yml +++ /dev/null @@ -1,145 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:12:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a18ff220-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1279a18-697e-11e6-94c2-bc764e11227e:jgvHQxzQNbZeRuORyvNwo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:12:08 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a1d00860-697e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/org-site-list-empty.yml b/tests/fixtures/org-site-list-empty.yml deleted file mode 100644 index cbe500dfd..000000000 --- a/tests/fixtures/org-site-list-empty.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: POST - url: 'https://onebox/api/authorize' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fab2d19a-6971-11e6-a905-bc764e11227e:gA1NC6WTasKwSboppTqyy' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fab2d19a-6971-11e6-a905-bc764e11227e:gA1NC6WTasKwSboppTqyy' - verify: '' - method: post - absolute_url: '' - json: password1 - Accept: null - body: '{"email":"devuser@pantheon.io","password":"password1"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:44 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 247bcc20-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr","expires_at":1474404164,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 250b61f0-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Content-Length: '3382' - Connection: keep-alive - X-Pantheon-Trace-Id: 25450f90-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "service_level": "free", "plan_name": "Sandbox", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "plan_name": "Sandbox", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 25821890-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 260419d0-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2644f360-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/org-site-list.yml b/tests/fixtures/org-site-list.yml deleted file mode 100644 index 489c0fb6b..000000000 --- a/tests/fixtures/org-site-list.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: POST - url: 'https://onebox/api/authorize' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fab2d19a-6971-11e6-a905-bc764e11227e:gA1NC6WTasKwSboppTqyy' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fab2d19a-6971-11e6-a905-bc764e11227e:gA1NC6WTasKwSboppTqyy' - verify: '' - method: post - absolute_url: '' - json: password1 - Accept: null - body: '{"email":"devuser@pantheon.io","password":"password1"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:44 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 247bcc20-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr","expires_at":1474404164,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 250b61f0-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Content-Length: '3382' - Connection: keep-alive - X-Pantheon-Trace-Id: 25450f90-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "service_level": "free", "plan_name": "Sandbox", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "plan_name": "Sandbox", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 25821890-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 260419d0-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:24838bfe-6972-11e6-93dc-bc764e11227e:tFXWErD1nVEpsj24oEmZr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:42:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 2644f360-6972-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"created_by_user_id": "11111111-1111-1111-1111-111111111111", "user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "created": 1471984734, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "framework": "wordpress", "holder_type": "user", "service_level": "free", "plan_name": "Sandbox", "php_version": "55", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "Behat Tests"}, "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6"}, "tags": []}]' diff --git a/tests/fixtures/org-upstream-list.yml b/tests/fixtures/org-upstream-list.yml deleted file mode 100644 index f37bf0fb7..000000000 --- a/tests/fixtures/org-upstream-list.yml +++ /dev/null @@ -1,96 +0,0 @@ - -- - 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/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:45a6d106-78df-11e7-9239-bc764e1141f9:KKvjNBoh4j9hbSyXEpYSw' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 04 Aug 2017 06:38:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 83690ef0-78df-11e7-bb02-4b0f356b9eb5 - 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:83c80b9e-78df-11e7-b42d-bc764e10d7c2:WaZ3L3B70rBoAe4TnRPHo","expires_at":1504247904,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:83c80b9e-78df-11e7-b42d-bc764e10d7c2:WaZ3L3B70rBoAe4TnRPHo' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 04 Aug 2017 06:38:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8412bc70-78df-11e7-bb69-db454aab88eb - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/6d363fae-20cc-8d21-9d31-f28b14bf268b/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:83c80b9e-78df-11e7-b42d-bc764e10d7c2:WaZ3L3B70rBoAe4TnRPHo' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 04 Aug 2017 06:38:25 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8442cd20-78df-11e7-bb69-db454aab88eb - 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: '[{"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}]' diff --git a/tests/fixtures/organization-site-remove.yml b/tests/fixtures/organization-site-remove.yml deleted file mode 100644 index a34dc9337..000000000 --- a/tests/fixtures/organization-site-remove.yml +++ /dev/null @@ -1,324 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:29 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 104a33c0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:29 GMT' - Content-Type: application/json - Content-Length: '3382' - Connection: keep-alive - X-Pantheon-Trace-Id: 108519e0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:30 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 10c1fbd0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:30 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1123f1f0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:31 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 11658ed0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"created_by_user_id": "11111111-1111-1111-1111-111111111111", "user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "created": 1471984734, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "framework": "wordpress", "holder_type": "user", "service_level": "free", "php_version": "55", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "Behat Tests"}, "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 9, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 4, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6"}, "tags": []}]' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"remove_organization_site_membership","params":{"site_id":"1fdf3bf6-50e3-42d8-ae56-fb4051481404"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 20:56:31 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 11b0efb0-6974-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"organization_id": "11111111-1111-1111-1111-111111111111", "params": {"site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "role": "admin", "task_ids": ["11b64eba-6974-11e6-af37-bc764e11227e"], "trace_id": "11b0efb0-6974-11e6-9ba8-733939e0aeaf", "type": "remove_organization_site_membership", "user_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471985791.591747, "reason": "", "finished_at": 1471985791.62868, "waiting_for_task_id": null, "result": "succeeded", "final_task_id": "11b64eba-6974-11e6-af37-bc764e11227e", "id": "11111111-1111-1111-1111-111111111111", "key": "1471982400", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.036932945251464844, "created_at": 1471985791.562445, "environment": null, "total_time": 0.06623506546020508, "active_description": "Removed a site to the organization", "description": "Remove a site from an organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:11b0efb0-6974-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T20:51:31.562445Z%27,mode:quick,to:%272016-08-23T21:01:31.628680Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"finished_at": 1471985791.611785, "fn_name": "trigger_task", "organization_id": "11111111-1111-1111-1111-111111111111", "params": {"organization_id": "11111111-1111-1111-1111-111111111111", "task_type": "remove_organization_site_membership", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "queued_at": 1471985791.591858, "responses": [{"code": 200, "body": "Site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 was successfully removed from organization 11111111-1111-1111-1111-111111111111", "error_details": "", "internal_reason": ""}], "result": "succeeded", "started_at": 1471985791.591866, "trace_id": "11b0efb0-6974-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "3d9c90aa-9afe-11e6-bab2-bc764e1141f9", "id": "11b64eba-6974-11e6-af37-bc764e11227e", "key": "1471982400", "queued_time": 8.106231689453125e-06, "host": null, "phase": "finished", "created_at": 1471985791.566201, "allow_concurrent": false, "run_time": 0.01991891860961914, "total_time": 0.04558396339416504, "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:11b0efb0-6974-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T20:51:31.566201Z%27,mode:quick,to:%272016-08-23T21:01:31.611785Z%27))", "type": "remove_organization_site_membership", "build_url": null, "messages": {"2016-08-23T20:56:31.643952": {"message": "Site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 was successfully removed from organization 11111111-1111-1111-1111-111111111111", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/organizations/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"bucket": "onebox-pantheon-backups", "key": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz"}, "role": "team_member", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432743.304635, "task_ids": ["3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "3de97a00-9afe-11e6-bab2-bc764e1141f9", "3deacdec-9afe-11e6-bab2-bc764e1141f9", "3dec609e-9afe-11e6-bab2-bc764e1141f9"], "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "type": "restore_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1477432742.742033, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Restoring files in \"dev\"", "description": "Restore files on \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:02.742033Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/restore_site/39952/", "number": 39952, "phase": "STARTED", "estimated_duration": 1300, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz", "code": "", "job_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "database": "", "bucket": "onebox-pantheon-backups", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "restore_site", "env": "dev"}, "queued_at": 1477432743.305127, "responses": [{"code": 201, "body": "Successfully queued restore_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432747.469298, "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "key": "1477429200", "queued_time": 4.164170980453491, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1477432743.031912, "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:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:03.031912Z%27,mode:quick,to:%27now%27))", "type": "restore_site", "build_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/", "messages": {"2016-10-25T21:59:08.136844": {"message": "Successfully queued restore_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/owner-set-solo.yml b/tests/fixtures/owner-set-solo.yml deleted file mode 100644 index 4bd48abab..000000000 --- a/tests/fixtures/owner-set-solo.yml +++ /dev/null @@ -1,216 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:08:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 537b1570-6a1d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:08:07 GMT' - Content-Type: application/json - Content-Length: '3569' - Connection: keep-alive - X-Pantheon-Trace-Id: 53b474f0-6a1d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:08:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 53f3a0d0-6a1d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:5312c6a0-6a1d-11e6-9d18-bc764e11227e:KRtTrsWgA8IFgQI7kUtZW' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:08:08 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 545ce9f0-6a1d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "verified": true, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}]' diff --git a/tests/fixtures/owner-set.yml b/tests/fixtures/owner-set.yml deleted file mode 100644 index 2440ee20b..000000000 --- a/tests/fixtures/owner-set.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:17:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b11c64d0-6a1e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:17:53 GMT' - Content-Type: application/json - Content-Length: '3501' - Connection: keep-alive - X-Pantheon-Trace-Id: b1537a60-6a1e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:17:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b18f9900-6a1e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:17:54 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b1f38af0-6a1e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "key": "11111111-1111-1111-1111-111111111111", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "user": {"profile": {"utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "initial_identity_strategy": null, "utm_campaign": "", "tracking_first_site_create": 1463783873, "verify": 1, "utm_device": "", "utm_medium": "", "job_function": "-- Please Select --", "google_adwords_account_registered_do_send": null, "firstname": "Dev", "utm_term": "", "lastname": "User", "pda_campaign": null, "utm_source": "", "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "dtl": "", "modified": 1463779435, "maxdevsites": 2, "google_adwords_account_registered_sent": 1463779438, "organization": null}, "verified": true, "id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11", "email": "otheruser@pantheon.io"}}, {"archived": false, "invited_by_id": null, "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "verified": true, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:b0bc35ce-6a1e-11e6-9d18-bc764e11227e:bV8tlyUHaic4KMuNedFRo' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"promote_site_user_to_owner","params":{"user_id":"a7926bb1-9490-46eb-b580-2e80cdf9fd11"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:17:55 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b25be9b0-6a1e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "b2606526-6a1e-11e6-85f8-bc764e11227e", "finished_at": 1472059075.619988, "params": {"user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472059075.583154, "task_ids": ["b2606526-6a1e-11e6-85f8-bc764e11227e"], "trace_id": "b25be9b0-6a1e-11e6-9ba8-733939e0aeaf", "type": "promote_site_user_to_owner", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1472058000", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.036834001541137695, "created_at": 1472059075.556422, "environment": null, "total_time": 0.06356596946716309, "active_description": "Promoted new owner", "description": "Promote user to owner", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:b25be9b0-6a1e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:12:55.556422Z%27,mode:quick,to:%272016-08-24T17:22:55.619988Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1472059075.605815, "fn_name": "trigger_task", "params": {"site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_type": "promote_site_user_to_owner", "user_id": "a7926bb1-9490-46eb-b580-2e80cdf9fd11"}, "queued_at": 1472059075.583285, "responses": [{"code": 200, "body": "OK", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1472059075.58329, "trace_id": "b25be9b0-6a1e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "b25fcabc-6a1e-11e6-85f8-bc764e11227e", "id": "b2606526-6a1e-11e6-85f8-bc764e11227e", "key": "1472058000", "queued_time": 5.0067901611328125e-06, "host": null, "phase": "finished", "created_at": 1472059075.560375, "allow_concurrent": false, "run_time": 0.02252483367919922, "total_time": 0.045439958572387695, "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:b25be9b0-6a1e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T17:12:55.560375Z%27,mode:quick,to:%272016-08-24T17:22:55.605815Z%27))", "type": "promote_site_user_to_owner", "build_url": null, "messages": {"2016-08-24T17:17:55.637330": {"message": "OK", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/payment-method-add.yml b/tests/fixtures/payment-method-add.yml deleted file mode 100644 index 24d85889f..000000000 --- a/tests/fixtures/payment-method-add.yml +++ /dev/null @@ -1,290 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:10:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 375a6690-698f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:10:51 GMT' - Content-Type: application/json - Content-Length: '3505' - Connection: keep-alive - X-Pantheon-Trace-Id: 3792dbb0-698f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:10:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 37dda050-698f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/instruments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:10:52 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3843dc30-698f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"11111111-1111-1111-1111-111111111111": {"billing_hash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f", "subscription_uuid": "36f3582bcaca439959f0634c4184af47", "label": "Visa - 1111", "dirty": true, "organization": null, "last_confirmed": "2016-06-24T22:34:37", "user": "11111111-1111-1111-1111-111111111111"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:36f2e63c-698f-11e6-af37-bc764e11227e:Itz5j8EWULNIr4bvQ2NXL' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"associate_site_instrument","params":{"instrument_id":"11111111-1111-1111-1111-111111111111"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:10:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 388021e0-698f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "3884ffe4-698f-11e6-93dc-bc764e11227e", "finished_at": 1471997453.160366, "params": {"instrument_id": "11111111-1111-1111-1111-111111111111"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471997453.110495, "task_ids": ["3884ffe4-698f-11e6-93dc-bc764e11227e"], "trace_id": "388021e0-698f-11e6-9ba8-733939e0aeaf", "type": "associate_site_instrument", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471996800", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.049870967864990234, "created_at": 1471997453.081827, "environment": null, "total_time": 0.07853913307189941, "active_description": "Associated a payment method to the site", "description": "Associate a payment method and a site", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:388021e0-698f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T00:05:53.081827Z%27,mode:quick,to:%272016-08-24T00:15:53.160366Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1471997453.143679, "fn_name": "trigger_task", "params": {"instrument_id": "11111111-1111-1111-1111-111111111111", "task_type": "associate_site_instrument", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "queued_at": 1471997453.110606, "responses": [{"code": 200, "body": "Instrument 11111111-1111-1111-1111-111111111111 is now associated with site 1fdf3bf6-50e3-42d8-ae56-fb4051481404", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471997453.110612, "trace_id": "388021e0-698f-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "388460de-698f-11e6-93dc-bc764e11227e", "id": "3884ffe4-698f-11e6-93dc-bc764e11227e", "key": "1471996800", "queued_time": 5.9604644775390625e-06, "host": null, "phase": "finished", "created_at": 1471997453.085898, "allow_concurrent": false, "run_time": 0.03306698799133301, "total_time": 0.05778098106384277, "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:388021e0-698f-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T00:05:53.085898Z%27,mode:quick,to:%272016-08-24T00:15:53.143679Z%27))", "type": "associate_site_instrument", "build_url": null, "messages": {"2016-08-24T00:10:53.175527": {"message": "Instrument 11111111-1111-1111-1111-111111111111 is now associated with site 1fdf3bf6-50e3-42d8-ae56-fb4051481404", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/payment-method-list.yml b/tests/fixtures/payment-method-list.yml deleted file mode 100644 index 695be679c..000000000 --- a/tests/fixtures/payment-method-list.yml +++ /dev/null @@ -1,111 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ba5b88d4-6404-11e6-9c01-bc764e1022a9:qB4n3SWIYV1uO1NQlc4RD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ba5b88d4-6404-11e6-9c01-bc764e1022a9:qB4n3SWIYV1uO1NQlc4RD' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:17 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 9d798620-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH","expires_at":1473807797,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:18 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 9ea4e6c0-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/instruments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9f382610-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"8558e04f-3674-481e-b448-bccff73cb430": {"billing_hash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f", "subscription_uuid": "2ffda3e88b28891166b9314fcf9f45a6", "label": "Visa - 1111", "dirty": true, "organization": null, "last_confirmed": "1984-07-28T16:40:02", "user": "11111111-1111-1111-1111-111111111111"}}' diff --git a/tests/fixtures/payment-method-remove.yml b/tests/fixtures/payment-method-remove.yml deleted file mode 100644 index b72dc9da7..000000000 --- a/tests/fixtures/payment-method-remove.yml +++ /dev/null @@ -1,290 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:05:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 7538d470-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:05:25 GMT' - Content-Type: application/json - Content-Length: '3505' - Connection: keep-alive - X-Pantheon-Trace-Id: 75714990-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:05:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 75aea0b0-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/instruments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:05:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 76192250-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"11111111-1111-1111-1111-111111111111": {"billing_hash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f", "subscription_uuid": "36f3582bcaca439959f0634c4184af47", "label": "Visa - 1111", "dirty": true, "organization": null, "last_confirmed": "2016-06-24T22:34:37", "user": "11111111-1111-1111-1111-111111111111"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:74de01a8-698e-11e6-83ff-bc764e11227e:On5FLM03b9HNhPzKwOK52' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"disassociate_site_instrument","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:05:27 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 76578ae0-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "765c0872-698e-11e6-93dc-bc764e11227e", "finished_at": 1471997127.388743, "params": {}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471997127.359698, "task_ids": ["765c0872-698e-11e6-93dc-bc764e11227e"], "trace_id": "76578ae0-698e-11e6-9ba8-733939e0aeaf", "type": "disassociate_site_instrument", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471996800", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.02904486656188965, "created_at": 1471997127.335659, "environment": null, "total_time": 0.05308389663696289, "active_description": "Removed payment method from site", "description": "Remove a payment method from a site", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:76578ae0-698e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T00:00:27.335659Z%27,mode:quick,to:%272016-08-24T00:10:27.388743Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1471997127.371712, "fn_name": "trigger_task", "params": {"task_type": "disassociate_site_instrument", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "queued_at": 1471997127.35981, "responses": [{"code": 200, "body": "No site instrument to remove", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471997127.359816, "trace_id": "76578ae0-698e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "765b752e-698e-11e6-93dc-bc764e11227e", "id": "765c0872-698e-11e6-93dc-bc764e11227e", "key": "1471996800", "queued_time": 5.9604644775390625e-06, "host": null, "phase": "finished", "created_at": 1471997127.339429, "allow_concurrent": false, "run_time": 0.011895895004272461, "total_time": 0.03228306770324707, "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:76578ae0-698e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-24T00:00:27.339429Z%27,mode:quick,to:%272016-08-24T00:10:27.371712Z%27))", "type": "disassociate_site_instrument", "build_url": null, "messages": {"2016-08-24T00:05:27.404162": {"message": "No site instrument to remove", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/payment-method-site-list-empty.yml b/tests/fixtures/payment-method-site-list-empty.yml deleted file mode 100644 index 0d9b2056d..000000000 --- a/tests/fixtures/payment-method-site-list-empty.yml +++ /dev/null @@ -1,111 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:ba5b88d4-6404-11e6-9c01-bc764e1022a9:qB4n3SWIYV1uO1NQlc4RD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:ba5b88d4-6404-11e6-9c01-bc764e1022a9:qB4n3SWIYV1uO1NQlc4RD' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:17 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 9d798620-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH","expires_at":1473807797,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:18 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 9ea4e6c0-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/instruments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9e6b4690-6405-11e6-8fd6-bc764e10b0ce:J30YbtTK0fYHOuFroEAdH' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:03:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9f382610-6405-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' diff --git a/tests/fixtures/plan-list-empty.yml b/tests/fixtures/plan-list-empty.yml deleted file mode 100644 index f3cee6734..000000000 --- a/tests/fixtures/plan-list-empty.yml +++ /dev/null @@ -1,127 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 86014190-e7bb-11e8-a535-698860127e36 - 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:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf","expires_at":1544584523,"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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 86aebfa0-e7bb-11e8-904b-df4a52791411 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:24 GMT' - Content-Type: application/json - Content-Length: '81242' - Connection: keep-alive - X-Pantheon-Trace-Id: 872c2d00-e7bb-11e8-a439-bfc9a0a2641e - 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: '{"allow_cacheserver": true, "allow_indexserver": true, "cacheserver": 1, "created": 1433800575, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "current_num_domains": 0, "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "indexserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "migration_completed_at": 1479333231, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": 70, "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-b", "preferred_zone": "us-central1", "purchased_at": 1433800856, "service_level": "free", "service_level_updated_at": 1542164760, "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "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": "b8b0a4de-9397-429b-933c-48769a9684cc", "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": "pantheon_one", "show_org_name_header": "yes", "terms_of_service": "", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "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": {"show_org_name_header": "yes", "service_level": "pantheon_one", "base_domain": null, "email_domain": null}}, "settings": {"allow_domains": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": true, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": 70, "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "purchased_at": 1433800856, "preferred_availability_zone": "us-central1-b", "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": 1479333231, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1433800575, "max_backups": 0, "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "service_level_updated_at": 1542164760}, "base_domain": null, "attributes": {"hostname_limit": true, "label": "behat-tests", "lb_deleted_at_live": 1507717406, "lb_disabled_at_live": 1507052103, "m3_ui": true}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/accounts/site-account-forwarding/11111111-1111-1111-1111-111111111111/plans' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 87ba6340-e7bb-11e8-a535-698860127e36 - 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: '' diff --git a/tests/fixtures/plan-list.yml b/tests/fixtures/plan-list.yml deleted file mode 100644 index b6f36aa9f..000000000 --- a/tests/fixtures/plan-list.yml +++ /dev/null @@ -1,127 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 86014190-e7bb-11e8-a535-698860127e36 - 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:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf","expires_at":1544584523,"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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 86aebfa0-e7bb-11e8-904b-df4a52791411 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:24 GMT' - Content-Type: application/json - Content-Length: '81242' - Connection: keep-alive - X-Pantheon-Trace-Id: 872c2d00-e7bb-11e8-a439-bfc9a0a2641e - 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: '{"allow_cacheserver": true, "allow_indexserver": true, "cacheserver": 1, "created": 1433800575, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "current_num_domains": 0, "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "indexserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "migration_completed_at": 1479333231, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": 70, "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-b", "preferred_zone": "us-central1", "purchased_at": 1433800856, "service_level": "free", "service_level_updated_at": 1542164760, "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "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": "b8b0a4de-9397-429b-933c-48769a9684cc", "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": "pantheon_one", "show_org_name_header": "yes", "terms_of_service": "", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "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": {"show_org_name_header": "yes", "service_level": "pantheon_one", "base_domain": null, "email_domain": null}}, "settings": {"allow_domains": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": true, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": 70, "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "purchased_at": 1433800856, "preferred_availability_zone": "us-central1-b", "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": 1479333231, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1433800575, "max_backups": 0, "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "service_level_updated_at": 1542164760}, "base_domain": null, "attributes": {"hostname_limit": true, "label": "behat-tests", "lb_deleted_at_live": 1507717406, "lb_disabled_at_live": 1507052103, "m3_ui": true}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/accounts/site-account-forwarding/11111111-1111-1111-1111-111111111111/plans' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:86326b62-e7bb-11e8-943d-42010a800160:8e3ps49xoUs8rZEer8AZf' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:15:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 87ba6340-e7bb-11e8-a535-698860127e36 - 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: '[{"attributes": {"sku": "plan-free-preferred-monthly-1", "features": ["Storage Smallest", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable"], "price": 0, "major_version": 1, "rate": "preferred", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 0, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 20, "visits": 0, "automated_backups_enableable": false, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "free", "msrp": 0, "name": "Sandbox"}, "type": "plan", "id": "1", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite", "msrp": 0, "name": "Elite"}, "type": "plan", "id": "2", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-basic-legacy-monthly-1", "features": ["New Relic Enableable", "Automated Backups Enableable", "Operational Priority Very Low"], "price": 2500, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 10, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": false, "multidev": false, "cache_server_enableable": false}, "slug": "basic", "msrp": 0, "name": "Personal"}, "type": "plan", "id": "3", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-pro-legacy-monthly-1", "features": ["New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Low"], "price": 10000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 20, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "pro", "msrp": 0, "name": "Professional"}, "type": "plan", "id": "4", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-business-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Medium"], "price": 40000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 40, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business", "msrp": 0, "name": "Business"}, "type": "plan", "id": "5", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-business_xl-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority High"], "price": 80000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 50, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business_xl", "msrp": 0, "name": "Business XL"}, "type": "plan", "id": "6", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_starter-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_starter", "msrp": 0, "name": "Elite Starter"}, "type": "plan", "id": "7", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_plus-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_plus", "msrp": 0, "name": "Elite Plus"}, "type": "plan", "id": "8", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_super-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_super", "msrp": 0, "name": "Elite Super"}, "type": "plan", "id": "9", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_max-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_max", "msrp": 0, "name": "Elite Max"}, "type": "plan", "id": "10", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}]' diff --git a/tests/fixtures/plan-set-fail.yml b/tests/fixtures/plan-set-fail.yml deleted file mode 100644 index da2b09d0a..000000000 --- a/tests/fixtures/plan-set-fail.yml +++ /dev/null @@ -1,127 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:08:55 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 9e55b330-e7ba-11e8-a439-bfc9a0a2641e - 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:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4","expires_at":1544584135,"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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:08:56 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9fa19420-e7ba-11e8-bdcd-87e3c51534c5 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:08:57 GMT' - Content-Type: application/json - Content-Length: '81242' - Connection: keep-alive - X-Pantheon-Trace-Id: a0097db0-e7ba-11e8-904b-df4a52791411 - 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: '{"allow_cacheserver": true, "allow_indexserver": true, "cacheserver": 1, "created": 1433800575, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "current_num_domains": 0, "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "indexserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "migration_completed_at": 1479333231, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": 70, "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-b", "preferred_zone": "us-central1", "purchased_at": 1433800856, "service_level": "free", "service_level_updated_at": 1542164760, "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "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": "b8b0a4de-9397-429b-933c-48769a9684cc", "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": "pantheon_one", "show_org_name_header": "yes", "terms_of_service": "", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "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": {"show_org_name_header": "yes", "service_level": "pantheon_one", "base_domain": null, "email_domain": null}}, "settings": {"allow_domains": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": true, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": 70, "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "purchased_at": 1433800856, "preferred_availability_zone": "us-central1-b", "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": 1479333231, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1433800575, "max_backups": 0, "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "service_level_updated_at": 1542164760}, "base_domain": null, "attributes": {"hostname_limit": true, "label": "behat-tests", "lb_deleted_at_live": 1507717406, "lb_disabled_at_live": 1507052103, "m3_ui": true}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/accounts/site-account-forwarding/11111111-1111-1111-1111-111111111111/plans' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9f296400-e7ba-11e8-a09b-42010a800160:gKpB2Z73SjzrHNK6zQlf4' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:08:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a0e14010-e7ba-11e8-900d-ef89f78a4db0 - 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: '[{"attributes": {"sku": "plan-free-preferred-monthly-1", "features": ["Storage Smallest", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable"], "price": 0, "major_version": 1, "rate": "preferred", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 0, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 20, "visits": 0, "automated_backups_enableable": false, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "free", "msrp": 0, "name": "Sandbox"}, "type": "plan", "id": "1", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite", "msrp": 0, "name": "Elite"}, "type": "plan", "id": "2", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-basic-legacy-monthly-1", "features": ["New Relic Enableable", "Automated Backups Enableable", "Operational Priority Very Low"], "price": 2500, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 10, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": false, "multidev": false, "cache_server_enableable": false}, "slug": "basic", "msrp": 0, "name": "Personal"}, "type": "plan", "id": "3", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-pro-legacy-monthly-1", "features": ["New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Low"], "price": 10000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 20, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "pro", "msrp": 0, "name": "Professional"}, "type": "plan", "id": "4", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-business-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Medium"], "price": 40000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 40, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business", "msrp": 0, "name": "Business"}, "type": "plan", "id": "5", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-business_xl-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority High"], "price": 80000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 50, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business_xl", "msrp": 0, "name": "Business XL"}, "type": "plan", "id": "6", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_starter-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_starter", "msrp": 0, "name": "Elite Starter"}, "type": "plan", "id": "7", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_plus-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_plus", "msrp": 0, "name": "Elite Plus"}, "type": "plan", "id": "8", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_super-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_super", "msrp": 0, "name": "Elite Super"}, "type": "plan", "id": "9", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_max-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_max", "msrp": 0, "name": "Elite Max"}, "type": "plan", "id": "10", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}]' diff --git a/tests/fixtures/plan-set.yml b/tests/fixtures/plan-set.yml deleted file mode 100644 index 2216ef2d3..000000000 --- a/tests/fixtures/plan-set.yml +++ /dev/null @@ -1,221 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:55 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 334519a0-e7ba-11e8-a535-698860127e36 - 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:11111111-1111-1111-1111-111111111111:111111111111111111111","expires_at":1544583955,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:55 GMT' - Content-Type: application/json - Content-Length: '3701' - Connection: keep-alive - X-Pantheon-Trace-Id: 33e180b0-e7ba-11e8-bdcd-87e3c51534c5 - 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: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 3, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 27, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 24, "registration_context": null, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Sara", "invites_to_site": 22, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 5, "tracking_first_site_upgrade": 1433800858, "seens": {"new-plans": true, "annual-billing": true, "terminus-1": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "skip-cms-installation": {"b774bb32-81f1-42f3-832a-61aae89ad421": true}}, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "feature_flags": [{"name": "Self-Serve Upstreams", "default": false, "enabled": false, "visible": false, "optional": false, "id": "self-serve_upstreams"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|getpantheon.com", "created_at": 1433793438, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:56 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 34604da0-e7ba-11e8-a535-698860127e36 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:57 GMT' - Content-Type: application/json - Content-Length: '81288' - Connection: keep-alive - X-Pantheon-Trace-Id: 34aee2d0-e7ba-11e8-a535-698860127e36 - 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: '{"allow_cacheserver": true, "allow_indexserver": true, "cacheserver": 1, "created": 1433800575, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "current_num_domains": 2, "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "indexserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "migration_completed_at": 1479333231, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": 70, "plan_name": "Performance Small", "preferred_availability_zone": "us-central1-b", "preferred_zone": "us-central1", "purchased_at": 1433800856, "service_level": "performance_small", "service_level_updated_at": 1532557102, "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "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": "b8b0a4de-9397-429b-933c-48769a9684cc", "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": "pantheon_one", "show_org_name_header": "yes", "terms_of_service": "", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "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": {"show_org_name_header": "yes", "service_level": "pantheon_one", "base_domain": null, "email_domain": null}}, "settings": {"allow_domains": true, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": true, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 2, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": 70, "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "plan_name": "Performance Small", "service_level": "performance_small", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "purchased_at": 1433800856, "preferred_availability_zone": "us-central1-b", "framework": "wordpress", "max_total_domains": 10, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": 1479333231, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1433800575, "max_backups": 7, "last_code_push": {"timestamp": "2018-09-25T21:20:21", "user_uuid": null}, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "service_level_updated_at": 1532557102}, "base_domain": null, "attributes": {"hostname_limit": true, "label": "behat-tests", "lb_deleted_at_live": 1507717406, "lb_disabled_at_live": 1507052103, "m3_ui": true}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/accounts/site-account-forwarding/11111111-1111-1111-1111-111111111111/plans' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:58 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 35909040-e7ba-11e8-a535-698860127e36 - 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: '[{"attributes": {"sku": "plan-free-preferred-monthly-1", "features": ["Storage Smallest", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable"], "price": 0, "major_version": 1, "rate": "preferred", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 0, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 20, "visits": 0, "automated_backups_enableable": false, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "free", "msrp": 0, "name": "Sandbox"}, "type": "plan", "id": "1", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-elite-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite", "msrp": 0, "name": "Elite"}, "type": "plan", "id": "2", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-basic-legacy-monthly-1", "features": ["New Relic Enableable", "Automated Backups Enableable", "Operational Priority Very Low"], "price": 2500, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 10, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": false, "multidev": false, "cache_server_enableable": false}, "slug": "basic", "msrp": 0, "name": "Personal"}, "type": "plan", "id": "3", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-pro-legacy-monthly-1", "features": ["New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Low"], "price": 10000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 20, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": false, "cache_server_enableable": true}, "slug": "pro", "msrp": 0, "name": "Professional"}, "type": "plan", "id": "4", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-business-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Medium"], "price": 40000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 40, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business", "msrp": 0, "name": "Business"}, "type": "plan", "id": "5", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-business_xl-legacy-monthly-1", "features": ["Multidev", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority High"], "price": 80000, "major_version": 1, "rate": "legacy", "billing_cycle": "monthly", "configuration": {"change_management": false, "operational_priority": 50, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 0, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "business_xl", "msrp": 0, "name": "Business XL"}, "type": "plan", "id": "6", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}}, {"attributes": {"sku": "plan-elite_starter-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_starter", "msrp": 0, "name": "Elite Starter"}, "type": "plan", "id": "7", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-elite_plus-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_plus", "msrp": 0, "name": "Elite Plus"}, "type": "plan", "id": "8", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-elite_super-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_super", "msrp": 0, "name": "Elite Super"}, "type": "plan", "id": "9", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-elite_max-contract-annual-1", "features": ["Multidev", "Visits Ultrahigh", "New Relic Enableable", "Index Server Enableable", "Cache Server Enableable", "Automated Backups Enableable", "Operational Priority Extreme"], "price": 0, "major_version": 1, "rate": "contract", "billing_cycle": "annual", "configuration": {"change_management": false, "operational_priority": 100, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 0, "visits": 10000000, "automated_backups_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "index_server_enableable": true, "multidev": true, "cache_server_enableable": true}, "slug": "elite_max", "msrp": 0, "name": "Elite Max"}, "type": "plan", "id": "10", "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": true}}, {"attributes": {"sku": "plan-performance_small-preferred-monthly-1", "name": "Performance Small", "price": 12500, "rate": "preferred", "billing_cycle": "monthly", "slug": "performance_small", "configurations": {"change_management": false, "support_plan": "regular_support", "rackspace_ssl": false, "custom_upstreams": false, "storage": 30, "visits": 25000, "automated_backups_enableable": true, "index_server_enableable": true, "secure_runtime_access_enableable": false, "new_relic_enableable": true, "operational_priority": 30, "multidev": false, "cache_server_enableable": true}}, "purchasable_status": {"available": true, "suggest_annual": false, "no_refund": false}, "type": "plan"}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - body: '{"type":"change_site_service_level","params":{"sku":"plan-free-preferred-monthly-1"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:05:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 35fce6a0-e7ba-11e8-a535-698860127e36 - 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: '{"params": {"sku": "plan-free-preferred-monthly-1"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "task_ids": ["362d84c2-e7ba-11e8-bc51-42010a800117", "362eaf14-e7ba-11e8-bc51-42010a800117", "362fea3c-e7ba-11e8-bc51-42010a800117", "36364864-e7ba-11e8-bc51-42010a800117", "363c2f9a-e7ba-11e8-bc51-42010a800117", "363d4e84-e7ba-11e8-bc51-42010a800117", "363e88da-e7ba-11e8-bc51-42010a800117", "364566c8-e7ba-11e8-bc51-42010a800117", "3646a196-e7ba-11e8-bc51-42010a800117", "364e0706-e7ba-11e8-bc51-42010a800117", "364f357c-e7ba-11e8-bc51-42010a800117", "36505416-e7ba-11e8-bc51-42010a800117", "3657386c-e7ba-11e8-bc51-42010a800117", "3658788a-e7ba-11e8-bc51-42010a800117"], "trace_id": "35fce6a0-e7ba-11e8-a535-698860127e36", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "id": "3619781a-e7ba-11e8-bc51-42010a800117", "key": "1542164400", "waiting_for_task_id": "362d84c2-e7ba-11e8-bc51-42010a800117", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1542164759.237225, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Change site plan", "description": "Change site plan", "step": 1, "has_operation_log_output": false, "number_of_tasks": 14, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:35fce6a0-e7ba-11e8-a535-698860127e36%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272018-11-14T03:00:59.237225Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|getpantheon.com", "created_at": 1433793438, "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": null, "fn_name": "trigger_task", "initialized_at": 1542164759.694396, "params": {"sku": "plan-free-preferred-monthly-1", "task_type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "service_level": null, "check_holder": true}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "35fce6a0-e7ba-11e8-a535-698860127e36", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "3619781a-e7ba-11e8-bc51-42010a800117", "id": "362d84c2-e7ba-11e8-bc51-42010a800117", "key": "1542164400", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "initialized", "created_at": 1542164759.368621, "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:35fce6a0-e7ba-11e8-a535-698860127e36%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272018-11-14T03:00:59.368621Z%27,mode:quick,to:%27now%27))", "type": "change_site_service_level", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/3619781a-e7ba-11e8-bc51-42010a800117' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.10&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 14 Nov 2018 03:06:00 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 369e7dd0-e7ba-11e8-a535-698860127e36 - 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: '{"params": {"sku": "plan-free-preferred-monthly-1"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "task_ids": ["362d84c2-e7ba-11e8-bc51-42010a800117", "362eaf14-e7ba-11e8-bc51-42010a800117", "362fea3c-e7ba-11e8-bc51-42010a800117", "36364864-e7ba-11e8-bc51-42010a800117", "363c2f9a-e7ba-11e8-bc51-42010a800117", "363d4e84-e7ba-11e8-bc51-42010a800117", "363e88da-e7ba-11e8-bc51-42010a800117", "364566c8-e7ba-11e8-bc51-42010a800117", "3646a196-e7ba-11e8-bc51-42010a800117", "364e0706-e7ba-11e8-bc51-42010a800117", "364f357c-e7ba-11e8-bc51-42010a800117", "36505416-e7ba-11e8-bc51-42010a800117", "3657386c-e7ba-11e8-bc51-42010a800117", "3658788a-e7ba-11e8-bc51-42010a800117"], "trace_id": "35fce6a0-e7ba-11e8-a535-698860127e36", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "id": "3619781a-e7ba-11e8-bc51-42010a800117", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "362d84c2-e7ba-11e8-bc51-42010a800117", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1542164759.237225, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Change site plan", "description": "Change site plan", "step": 1, "has_operation_log_output": false, "number_of_tasks": 14, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:35fce6a0-e7ba-11e8-a535-698860127e36%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272018-11-14T03:00:59.237225Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|getpantheon.com", "created_at": 1433793438, "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": null, "fn_name": "trigger_task", "initialized_at": 1542164759.694396, "params": {"sku": "plan-free-preferred-monthly-1", "task_type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "service_level": null, "check_holder": true}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "35fce6a0-e7ba-11e8-a535-698860127e36", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "3619781a-e7ba-11e8-bc51-42010a800117", "id": "362d84c2-e7ba-11e8-bc51-42010a800117", "key": "1542164400", "responses": [], "queued_time": null, "host": null, "result": "succeeded", "phase": "initialized", "created_at": 1542164759.368621, "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:35fce6a0-e7ba-11e8-a535-698860127e36%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272018-11-14T03:00:59.368621Z%27,mode:quick,to:%27now%27))", "type": "change_site_service_level", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/plugins/README.md b/tests/fixtures/plugins/README.md deleted file mode 100644 index 8937eac08..000000000 --- a/tests/fixtures/plugins/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Plugin composer.json fixtures - -These fixtures are used by the PluginInfoTest to determine whether plugin info parsing and validating is working correctly. diff --git a/tests/fixtures/plugins/invalid-compat-versionless-composer/composer.json b/tests/fixtures/plugins/invalid-compat-versionless-composer/composer.json deleted file mode 100644 index 66c387603..000000000 --- a/tests/fixtures/plugins/invalid-compat-versionless-composer/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "terminus-plugin", - "extra": { - "terminus": {} - } -} diff --git a/tests/fixtures/plugins/invalid-composer-json/composer.json b/tests/fixtures/plugins/invalid-composer-json/composer.json deleted file mode 100644 index b6af0eff4..000000000 --- a/tests/fixtures/plugins/invalid-composer-json/composer.json +++ /dev/null @@ -1 +0,0 @@ -Invalid JSON! diff --git a/tests/fixtures/plugins/invalid-composer-namespace/composer.json b/tests/fixtures/plugins/invalid-composer-namespace/composer.json deleted file mode 100644 index 8cae8ae5e..000000000 --- a/tests/fixtures/plugins/invalid-composer-namespace/composer.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "orgname/with-namespace", - "description": "A test Terminus command with invalid autoload namespacing", - "type": "terminus-plugin", - "extra": { - "terminus": { - "compatible-version": "1.*" - } - }, - "license": "MIT", - "autoload": { - "psr-4": { "OrgName\\PluginName": "src" } - } -} diff --git a/tests/fixtures/plugins/invalid-extraless-composer/composer.json b/tests/fixtures/plugins/invalid-extraless-composer/composer.json deleted file mode 100644 index 1bc44196b..000000000 --- a/tests/fixtures/plugins/invalid-extraless-composer/composer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "terminus-plugin", - "extra": {} -} diff --git a/tests/fixtures/plugins/invalid-no-composer-json/src/NullCommand.php b/tests/fixtures/plugins/invalid-no-composer-json/src/NullCommand.php deleted file mode 100644 index 0852a9006..000000000 --- a/tests/fixtures/plugins/invalid-no-composer-json/src/NullCommand.php +++ /dev/null @@ -1,16 +0,0 @@ - clear_cache\n [user_id] => 11111111-1111-1111-1111-111111111111\n [qs_description] => Simple Quicksilver Example\n [user_lastname] => User\n [user_fullname] => Dev User\n [site_id] => 11111111-1111-1111-1111-111111111111\n [user_role] => super\n [trace_id] => 0819a3c0-912e-11e6-830c-15b191d9b793\n [environment] => dev\n [wf_description] => Clear cache for \"dev\"\n [user_firstname] => Dev\n [user_email] => devuser@pantheon.io\n [stage] => after\n)\n\n========== END PAYLOAD ============\n\n------- START ENVIRONMENT ---------\nArray\n(\n [FRAMEWORK] => drupal8\n [DOCROOT] => /\n [FILEMOUNT] => sites/default/files\n [DRUPAL_HASH_SALT] => [REDACTED]\n [drush_version] => 8\n [php_version] => 7.0\n [CACHE_HOST] => 10.223.224.176\n [CACHE_PORT] => 11487\n [CACHE_PASSWORD] => [REDACTED]\n [DB_HOST] => 10.223.176.98\n [DB_PORT] => 17198\n [DB_USER] => pantheon\n [DB_PASSWORD] => [REDACTED]\n [DB_NAME] => pantheon\n [PANTHEON_INDEX_HOST] => 10.223.96.36\n [PANTHEON_INDEX_PORT] => 449\n [PANTHEON_SITE] => 11111111-1111-1111-1111-111111111111\n [PANTHEON_SITE_NAME] => behat-tests\n [PANTHEON_ENVIRONMENT] => dev\n [PANTHEON_INFRASTRUCTURE_ENVIRONMENT] => live\n [PATH] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12/bin:/usr/local/bin:/bin:/usr/bin:/srv/bin\n [HOME] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12\n [PHPRC] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12/php.ini\n)\n\n-------- END ENVIRONMENT ----------\n"}]}' diff --git a/tests/fixtures/redis-disable.yml b/tests/fixtures/redis-disable.yml deleted file mode 100644 index 0628078f4..000000000 --- a/tests/fixtures/redis-disable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:02:10 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 36d918a0-4222-11ea-9291-4526f2c1771d - 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:37136640-4222-11ea-bdd3-42010a800117:qb72OWE0mdSuUrzCrh4Sd","expires_at":1582671730,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:37136640-4222-11ea-bdd3-42010a800117:qb72OWE0mdSuUrzCrh4Sd' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:02:12 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 37964e20-4222-11ea-b05a-056e6551f7d0 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:37136640-4222-11ea-bdd3-42010a800117:qb72OWE0mdSuUrzCrh4Sd' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:02:12 GMT' - Content-Type: application/json - Content-Length: '4299' - Connection: keep-alive - X-Pantheon-Trace-Id: 37f02df0-4222-11ea-9291-4526f2c1771d - 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: '{"allow_cacheserver": true, "created": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580252503, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": "55", "php_channel": "stable", "allow_cacheserver": true, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252503, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests", "m3_ui": true}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:37136640-4222-11ea-bdd3-42010a800117:qb72OWE0mdSuUrzCrh4Sd' - Accept: null - body: '{"type":"disable_addon","params":{"addon":"cacheserver"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:02:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 48456490-4222-11ea-a46f-1ffa60855b30 - 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: '{"params": {"addon": "cacheserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580252559.789183, "task_ids": ["484b775e-4222-11ea-a1d4-42010a8001a4", "484ceaf8-4222-11ea-a1d4-42010a8001a4", "48c0885a-4222-11ea-a1d4-42010a8001a4", "48c204aa-4222-11ea-a1d4-42010a8001a4", "48c4a098-4222-11ea-a1d4-42010a8001a4", "48c519b0-4222-11ea-a1d4-42010a8001a4", "48c593ae-4222-11ea-a1d4-42010a8001a4", "490f1024-4222-11ea-a1d4-42010a8001a4", "491070f4-4222-11ea-a1d4-42010a8001a4", "49138244-4222-11ea-a1d4-42010a8001a4", "49142852-4222-11ea-a1d4-42010a8001a4", "4914a390-4222-11ea-a1d4-42010a8001a4", "494b9530-4222-11ea-a1d4-42010a8001a4", "494cd1c0-4222-11ea-a1d4-42010a8001a4", "494fd4e2-4222-11ea-a1d4-42010a8001a4", "49508586-4222-11ea-a1d4-42010a8001a4", "4950ef58-4222-11ea-a1d4-42010a8001a4", "4951afe2-4222-11ea-a1d4-42010a8001a4", "49581a26-4222-11ea-a1d4-42010a8001a4", "49597bc8-4222-11ea-a1d4-42010a8001a4"], "trace_id": "48456490-4222-11ea-a46f-1ffa60855b30", "type": "disable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "id": "484a6ddc-4222-11ea-a1d4-42010a8001a4", "key": "1580252400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580252559.738006, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Disabling cacheserver for site", "description": "Disable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 20, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:48456490-4222-11ea-a46f-1ffa60855b30%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:57:39.738006Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580252561.596806, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "48456490-4222-11ea-a46f-1ffa60855b30", "workflow_id": "484a6ddc-4222-11ea-a1d4-42010a8001a4", "id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "initialized", "created_at": 1580252560.512009, "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:48456490-4222-11ea-a46f-1ffa60855b30%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:57:40.512009Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/484a6ddc-4222-11ea-a1d4-42010a8001a4' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:37136640-4222-11ea-bdd3-42010a800117:qb72OWE0mdSuUrzCrh4Sd' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:02:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 498e3840-4222-11ea-9114-b3a0d1957940 - 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: '{"params": {"addon": "cacheserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580252559.789183, "task_ids": ["484b775e-4222-11ea-a1d4-42010a8001a4", "484ceaf8-4222-11ea-a1d4-42010a8001a4", "48c0885a-4222-11ea-a1d4-42010a8001a4", "48c204aa-4222-11ea-a1d4-42010a8001a4", "48c4a098-4222-11ea-a1d4-42010a8001a4", "48c519b0-4222-11ea-a1d4-42010a8001a4", "48c593ae-4222-11ea-a1d4-42010a8001a4", "490f1024-4222-11ea-a1d4-42010a8001a4", "491070f4-4222-11ea-a1d4-42010a8001a4", "49138244-4222-11ea-a1d4-42010a8001a4", "49142852-4222-11ea-a1d4-42010a8001a4", "4914a390-4222-11ea-a1d4-42010a8001a4", "494b9530-4222-11ea-a1d4-42010a8001a4", "494cd1c0-4222-11ea-a1d4-42010a8001a4", "494fd4e2-4222-11ea-a1d4-42010a8001a4", "49508586-4222-11ea-a1d4-42010a8001a4", "4950ef58-4222-11ea-a1d4-42010a8001a4", "4951afe2-4222-11ea-a1d4-42010a8001a4", "49581a26-4222-11ea-a1d4-42010a8001a4", "49597bc8-4222-11ea-a1d4-42010a8001a4"], "trace_id": "48456490-4222-11ea-a46f-1ffa60855b30", "type": "disable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "id": "484a6ddc-4222-11ea-a1d4-42010a8001a4", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580252559.738006, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Disabling cacheserver for site", "description": "Disable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 20, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:48456490-4222-11ea-a46f-1ffa60855b30%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:57:39.738006Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "build": {"url": "job/converge_hostname/310898/", "number": 310898, "phase": "STARTED", "estimated_duration": 3842, "duration": 0, "full_url": "https://104.197.168.13:8090/jenkins/job/converge_hostname/310898/"}, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580252561.596806, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "hostname_id": "test-behat-tests.pantheonsite.io"}, "queued_at": 1580252561.60247, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580252561.738167, "trace_id": "48456490-4222-11ea-a46f-1ffa60855b30", "workflow_id": "484a6ddc-4222-11ea-a1d4-42010a8001a4", "id": "48c0885a-4222-11ea-a1d4-42010a8001a4", "key": "1580252400", "queued_time": 0.1356971263885498, "host": "localhost", "result": "succeeded", "phase": "started", "created_at": 1580252560.512009, "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:48456490-4222-11ea-a46f-1ffa60855b30%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:57:40.512009Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": "https://104.197.168.13:8090/jenkins/job/converge_hostname/310898/", "messages": {"2020-01-28T23:02:41.979128": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/redis-enable.yml b/tests/fixtures/redis-enable.yml deleted file mode 100644 index 68725e470..000000000 --- a/tests/fixtures/redis-enable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:01:20 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 18fa2770-4222-11ea-b05a-056e6551f7d0 - 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:19437efc-4222-11ea-b972-42010a800117:TJQy9EUaZ7VnGOfxoflb1","expires_at":1582671680,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:19437efc-4222-11ea-b972-42010a800117:TJQy9EUaZ7VnGOfxoflb1' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:01:21 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 19c58dc0-4222-11ea-9114-b3a0d1957940 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:19437efc-4222-11ea-b972-42010a800117:TJQy9EUaZ7VnGOfxoflb1' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:01:22 GMT' - Content-Type: application/json - Content-Length: '4273' - Connection: keep-alive - X-Pantheon-Trace-Id: 19f30660-4222-11ea-9590-c52a0942a295 - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580251687, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580251687, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests", "m3_ui": true}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:19437efc-4222-11ea-b972-42010a800117:TJQy9EUaZ7VnGOfxoflb1' - Accept: null - body: '{"type":"enable_addon","params":{"addon":"cacheserver"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:01:42 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 24b45220-4222-11ea-9291-4526f2c1771d - 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: '{"params": {"addon": "cacheserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580252500.179995, "task_ids": ["24bd9290-4222-11ea-affa-42010a800117", "24c135a8-4222-11ea-affa-42010a800117", "254d967e-4222-11ea-affa-42010a800117", "254f79e4-4222-11ea-affa-42010a800117", "2553983a-4222-11ea-affa-42010a800117", "2552b8de-4222-11ea-affa-42010a800117", "25544afa-4222-11ea-affa-42010a800117", "25b066aa-4222-11ea-affa-42010a800117", "25b207f8-4222-11ea-affa-42010a800117", "25b58036-4222-11ea-affa-42010a800117", "25b4f7a6-4222-11ea-affa-42010a800117", "25b64db8-4222-11ea-affa-42010a800117", "2609f9fe-4222-11ea-affa-42010a800117", "260eecf2-4222-11ea-affa-42010a800117", "26158512-4222-11ea-affa-42010a800117", "26145ee4-4222-11ea-affa-42010a800117", "2614db80-4222-11ea-affa-42010a800117", "26161004-4222-11ea-affa-42010a800117", "262000dc-4222-11ea-affa-42010a800117", "2621bab2-4222-11ea-affa-42010a800117"], "trace_id": "24b45220-4222-11ea-9291-4526f2c1771d", "type": "enable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "254d967e-4222-11ea-affa-42010a800117", "id": "24bc6afa-4222-11ea-affa-42010a800117", "key": "1580252400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580252500.087065, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Enabling cacheserver for site", "description": "Enable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 20, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:24b45220-4222-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:56:40.087065Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580252502.597253, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "254d967e-4222-11ea-affa-42010a800117", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "24b45220-4222-11ea-9291-4526f2c1771d", "workflow_id": "24bc6afa-4222-11ea-affa-42010a800117", "id": "254d967e-4222-11ea-affa-42010a800117", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "initialized", "created_at": 1580252501.038451, "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:24b45220-4222-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:56:41.038451Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/24bc6afa-4222-11ea-affa-42010a800117' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:19437efc-4222-11ea-b972-42010a800117:TJQy9EUaZ7VnGOfxoflb1' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:01:42 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 26695520-4222-11ea-9291-4526f2c1771d - 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: '{"params": {"addon": "cacheserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580252500.179995, "task_ids": ["24bd9290-4222-11ea-affa-42010a800117", "24c135a8-4222-11ea-affa-42010a800117", "254d967e-4222-11ea-affa-42010a800117", "254f79e4-4222-11ea-affa-42010a800117", "2553983a-4222-11ea-affa-42010a800117", "2552b8de-4222-11ea-affa-42010a800117", "25544afa-4222-11ea-affa-42010a800117", "25b066aa-4222-11ea-affa-42010a800117", "25b207f8-4222-11ea-affa-42010a800117", "25b58036-4222-11ea-affa-42010a800117", "25b4f7a6-4222-11ea-affa-42010a800117", "25b64db8-4222-11ea-affa-42010a800117", "2609f9fe-4222-11ea-affa-42010a800117", "260eecf2-4222-11ea-affa-42010a800117", "26158512-4222-11ea-affa-42010a800117", "26145ee4-4222-11ea-affa-42010a800117", "2614db80-4222-11ea-affa-42010a800117", "26161004-4222-11ea-affa-42010a800117", "262000dc-4222-11ea-affa-42010a800117", "2621bab2-4222-11ea-affa-42010a800117"], "trace_id": "24b45220-4222-11ea-9291-4526f2c1771d", "type": "enable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "254d967e-4222-11ea-affa-42010a800117", "id": "24bc6afa-4222-11ea-affa-42010a800117", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580252500.087065, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Enabling cacheserver for site", "description": "Enable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 20, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:24b45220-4222-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:56:40.087065Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580252502.597253, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "254d967e-4222-11ea-affa-42010a800117", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "24b45220-4222-11ea-9291-4526f2c1771d", "workflow_id": "24bc6afa-4222-11ea-affa-42010a800117", "id": "254d967e-4222-11ea-affa-42010a800117", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": "succeeded", "phase": "initialized", "created_at": 1580252501.038451, "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:24b45220-4222-11ea-9291-4526f2c1771d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T22:56:41.038451Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/self-env-cache-clear.yml b/tests/fixtures/self-env-cache-clear.yml deleted file mode 100644 index 860169d44..000000000 --- a/tests/fixtures/self-env-cache-clear.yml +++ /dev/null @@ -1,75 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fcaa74c6-6403-11e6-bf57-bc764e105ecb:vYnPJtXqYYhv09Cso9gD4' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fcaa74c6-6403-11e6-bf57-bc764e105ecb:vYnPJtXqYYhv09Cso9gD4' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:39 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fd68eb90-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN","expires_at":1473807099,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fe4dfe1a-6403-11e6-acba-bc764e11bdd3:ss5YnpXhEIFMKE4CqSLIN' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:40 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: fe824ad0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' diff --git a/tests/fixtures/service-level-set-fail.yml b/tests/fixtures/service-level-set-fail.yml deleted file mode 100644 index 092997b70..000000000 --- a/tests/fixtures/service-level-set-fail.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:04:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 52168960-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:04:26 GMT' - Content-Type: application/json - Content-Length: '3505' - Connection: keep-alive - X-Pantheon-Trace-Id: 524d50d0-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:04:27 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 529137a0-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"change_site_service_level","params":{"service_level":"pro"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 00:04:28 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 52fe0330-698e-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "5302751e-698e-11e6-9d18-bc764e11227e", "finished_at": 1471997068.084304, "params": {"service_level": "pro"}, "reason": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "result": "aborted", "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471997068.059841, "task_ids": ["5302751e-698e-11e6-9d18-bc764e11227e", "5303822e-698e-11e6-9d18-bc764e11227e"], "trace_id": "52fe0330-698e-11e6-9ba8-733939e0aeaf", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "5301ea04-698e-11e6-9d18-bc764e11227e", "key": "1471996800", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.024463176727294922, "created_at": 1471997068.02857, "environment": null, "total_time": 0.05573415756225586, "active_description": "Changed site plan to \"pro\"", "description": "Change site plan", "step": 1, "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:52fe0330-698e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:59:28.028570Z%27,mode:quick,to:%272016-08-24T00:09:28.084304Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1471997068.067682, "fn_name": "trigger_task", "has_error": true, "params": {"site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "service_level": "pro"}, "queued_at": 1471997068.05998, "responses": [{"code": 400, "body": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "error_details": "", "internal_reason": ""}], "result": "aborted", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471997068.059983, "trace_id": "52fe0330-698e-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "5301ea04-698e-11e6-9d18-bc764e11227e", "id": "5302751e-698e-11e6-9d18-bc764e11227e", "key": "1471996800", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471997068.032131, "allow_concurrent": false, "run_time": 0.007699012756347656, "total_time": 0.03555107116699219, "reason": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "error_details": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "internal_reason": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:52fe0330-698e-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:59:28.032131Z%27,mode:quick,to:%272016-08-24T00:09:28.067682Z%27))", "type": "change_site_service_level", "build_url": null, "messages": {"2016-08-24T00:04:28.099146": {"message": "The site 1fdf3bf6-50e3-42d8-ae56-fb4051481404 needs to be paid for before the service level can be changed", "level": "ERROR"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/5301ea04-698e-11e6-9d18-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8a9ba460-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {"service_level": "pro"}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471996730.863968, "task_ids": ["8a0499e4-698d-11e6-9d18-bc764e11227e", "8a05bc66-698d-11e6-9d18-bc764e11227e", "8a21c4b0-698d-11e6-9d18-bc764e11227e", "8a22c4be-698d-11e6-9d18-bc764e11227e", "8a2348d0-698d-11e6-9d18-bc764e11227e", "8a235406-698d-11e6-9d18-bc764e11227e", "8a36b2a8-698d-11e6-9d18-bc764e11227e", "8a37b31a-698d-11e6-9d18-bc764e11227e", "8a381a8a-698d-11e6-9d18-bc764e11227e", "8a3824d0-698d-11e6-9d18-bc764e11227e", "8a382ec6-698d-11e6-9d18-bc764e11227e", "8a429730-698d-11e6-9d18-bc764e11227e", "8a439cc0-698d-11e6-9d18-bc764e11227e", "8a43f706-698d-11e6-9d18-bc764e11227e", "8a440138-698d-11e6-9d18-bc764e11227e", "8a440b24-698d-11e6-9d18-bc764e11227e"], "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "id": "8a03034a-698d-11e6-9d18-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471996730.813729, "reason": "", "environment": null, "final_task_id": null, "result": "failed", "total_time": null, "active_description": "Site needs to be paid for before the service level can be changed.", "description": "Change site plan", "step": 3, "has_operation_log_output": false, "number_of_tasks": 16, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:50.813729Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "queued_at": 1471996731.308117, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "workflow_id": "8a03034a-698d-11e6-9d18-bc764e11227e", "id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "key": "1471993200", "queued_time": null, "host": "localhost", "result": null, "phase": "queued", "created_at": 1471996731.015288, "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:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:51.015288Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {"2016-08-23T23:58:51.881025": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/service-level-set.yml b/tests/fixtures/service-level-set.yml deleted file mode 100644 index 5c6cc2d14..000000000 --- a/tests/fixtures/service-level-set.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:49 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 891886d0-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:49 GMT' - Content-Type: application/json - Content-Length: '3582' - Connection: keep-alive - X-Pantheon-Trace-Id: 89539400-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 400, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "cost": 400, "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "number_allow_domains": 200, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:50 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 898ea130-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"change_site_service_level","params":{"service_level":"pro"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 89fdb6b0-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"service_level": "pro"}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471996730.863968, "task_ids": ["8a0499e4-698d-11e6-9d18-bc764e11227e", "8a05bc66-698d-11e6-9d18-bc764e11227e", "8a21c4b0-698d-11e6-9d18-bc764e11227e", "8a22c4be-698d-11e6-9d18-bc764e11227e", "8a2348d0-698d-11e6-9d18-bc764e11227e", "8a235406-698d-11e6-9d18-bc764e11227e", "8a36b2a8-698d-11e6-9d18-bc764e11227e", "8a37b31a-698d-11e6-9d18-bc764e11227e", "8a381a8a-698d-11e6-9d18-bc764e11227e", "8a3824d0-698d-11e6-9d18-bc764e11227e", "8a382ec6-698d-11e6-9d18-bc764e11227e", "8a429730-698d-11e6-9d18-bc764e11227e", "8a439cc0-698d-11e6-9d18-bc764e11227e", "8a43f706-698d-11e6-9d18-bc764e11227e", "8a440138-698d-11e6-9d18-bc764e11227e", "8a440b24-698d-11e6-9d18-bc764e11227e"], "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "id": "8a03034a-698d-11e6-9d18-bc764e11227e", "key": "1471993200", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471996730.813729, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Changing site plan to \"pro\"", "description": "Change site plan", "step": 3, "has_operation_log_output": false, "number_of_tasks": 16, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:50.813729Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "workflow_id": "8a03034a-698d-11e6-9d18-bc764e11227e", "id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "key": "1471993200", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "created", "created_at": 1471996731.015288, "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:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:51.015288Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/8a03034a-698d-11e6-9d18-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:88a4c83a-698d-11e6-9d18-bc764e11227e:c6Wpi4Zt4nbsku3J9A6ZK' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 23:58:51 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 8a9ba460-698d-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {"service_level": "pro"}, "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471996730.863968, "task_ids": ["8a0499e4-698d-11e6-9d18-bc764e11227e", "8a05bc66-698d-11e6-9d18-bc764e11227e", "8a21c4b0-698d-11e6-9d18-bc764e11227e", "8a22c4be-698d-11e6-9d18-bc764e11227e", "8a2348d0-698d-11e6-9d18-bc764e11227e", "8a235406-698d-11e6-9d18-bc764e11227e", "8a36b2a8-698d-11e6-9d18-bc764e11227e", "8a37b31a-698d-11e6-9d18-bc764e11227e", "8a381a8a-698d-11e6-9d18-bc764e11227e", "8a3824d0-698d-11e6-9d18-bc764e11227e", "8a382ec6-698d-11e6-9d18-bc764e11227e", "8a429730-698d-11e6-9d18-bc764e11227e", "8a439cc0-698d-11e6-9d18-bc764e11227e", "8a43f706-698d-11e6-9d18-bc764e11227e", "8a440138-698d-11e6-9d18-bc764e11227e", "8a440b24-698d-11e6-9d18-bc764e11227e"], "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "type": "change_site_service_level", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "id": "8a03034a-698d-11e6-9d18-bc764e11227e", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1471996730.813729, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Changing site plan to \"pro\"", "description": "Change site plan", "step": 3, "has_operation_log_output": false, "number_of_tasks": 16, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:50.813729Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "hostname_id": "test-behat-tests.onebox.pantheon.io"}, "queued_at": 1471996731.308117, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "trace_id": "89fdb6b0-698d-11e6-9ba8-733939e0aeaf", "workflow_id": "8a03034a-698d-11e6-9d18-bc764e11227e", "id": "8a21c4b0-698d-11e6-9d18-bc764e11227e", "key": "1471993200", "queued_time": null, "host": "localhost", "result": null, "phase": "queued", "created_at": 1471996731.015288, "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:89fdb6b0-698d-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T23:53:51.015288Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {"2016-08-23T23:58:51.881025": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-create-duplicate.yml b/tests/fixtures/site-create-duplicate.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/fixtures/site-create.yml b/tests/fixtures/site-create.yml deleted file mode 100644 index dc08b003f..000000000 --- a/tests/fixtures/site-create.yml +++ /dev/null @@ -1,424 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aa32bd8c-7148-11e6-93d1-bc764e105ecb:VUVZuto84i5MKrbYxYAw6' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aa32bd8c-7148-11e6-93d1-bc764e105ecb:VUVZuto84i5MKrbYxYAw6' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:11:40 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 75b84260-7149-11e6-847f-95bfcb868b44 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo","expires_at":1475266300,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:11:41 GMT' - Content-Type: application/json - Content-Length: '3375' - Connection: keep-alive - X-Pantheon-Trace-Id: 7642cf20-7149-11e6-af8f-69992fe0d1e7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1432325757, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Ronan Dowling", "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 3, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1433965307, "google_adwords_account_registered_sent": 1432325633, "invites_to_user": 3, "utm_medium": "", "job_function": null, "tracking_first_workflow_in_live": 1433965317, "tracking_first_team_invite": 1442441145, "firstname": "Ronan", "invites_to_site": 2, "lastname": "Dowling", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433965452, "last-org-spinup": "none", "tracking_first_site_create": 1432650526, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1472142127, "google_adwords_paid_for_site_sent": 1472142183, "modified": 1432325616, "maxdevsites": 500, "lead_type": "", "organization": null}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:11:42 GMT' - Content-Type: application/json - Content-Length: '3375' - Connection: keep-alive - X-Pantheon-Trace-Id: 76877940-7149-11e6-af8f-69992fe0d1e7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1432325757, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Ronan Dowling", "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 3, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1433965307, "google_adwords_account_registered_sent": 1432325633, "invites_to_user": 3, "utm_medium": "", "job_function": null, "tracking_first_workflow_in_live": 1433965317, "tracking_first_team_invite": 1442441145, "firstname": "Ronan", "invites_to_site": 2, "lastname": "Dowling", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433965452, "last-org-spinup": "none", "tracking_first_site_create": 1432650526, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1472142127, "google_adwords_paid_for_site_sent": 1472142183, "modified": 1432325616, "maxdevsites": 500, "lead_type": "", "organization": null}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"create_site","params":{"label":"behat-tests","site_name":"behat-tests"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:11:49 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 784e0870-7149-11e6-847f-95bfcb868b44 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"site_name": "behat-tests", "label": "behat-tests"}, "role": "owner", "started_at": 1472847104.679475, "task_ids": ["7851edf0-7149-11e6-9b75-bc764e10d7c2", "791a5ca4-7149-11e6-9b75-bc764e10d7c2", "791d540e-7149-11e6-9b75-bc764e10d7c2", "792044b6-7149-11e6-9b75-bc764e10d7c2", "792447e6-7149-11e6-9b75-bc764e10d7c2", "79261a44-7149-11e6-9b75-bc764e10d7c2", "7927f512-7149-11e6-9b75-bc764e10d7c2", "7972423e-7149-11e6-9b75-bc764e10d7c2", "7973be8e-7149-11e6-9b75-bc764e10d7c2", "7976e294-7149-11e6-9b75-bc764e10d7c2", "7977853c-7149-11e6-9b75-bc764e10d7c2", "797833ec-7149-11e6-9b75-bc764e10d7c2"], "trace_id": "784e0870-7149-11e6-847f-95bfcb868b44", "type": "create_site", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "791a5ca4-7149-11e6-9b75-bc764e10d7c2", "id": "7851c0be-7149-11e6-9b75-bc764e10d7c2", "key": "1472846400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1472847104.655379, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Creating new site \"behat-tests\"", "description": "Create a new site", "step": 2, "has_operation_log_output": false, "number_of_tasks": 12, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:784e0870-7149-11e6-847f-95bfcb868b44%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:06:44.655379Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "waiting_for_task": {"allow_concurrent": true, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "104.239.200.45", "task_type": "deploy_codeserver_binding", "job_id": "791a5ca4-7149-11e6-9b75-bc764e10d7c2", "binding_id": "7157c087c18d4d7fa98b6ec9f1c45458"}, "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "trace_id": "784e0870-7149-11e6-847f-95bfcb868b44", "user_id": null, "workflow_id": "7851c0be-7149-11e6-9b75-bc764e10d7c2", "id": "791a5ca4-7149-11e6-9b75-bc764e10d7c2", "key": "1472846400", "responses": [], "queued_time": null, "host": "104.239.200.45", "result": null, "phase": "created", "created_at": 1472847105.97009, "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:784e0870-7149-11e6-847f-95bfcb868b44%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:06:45.970090Z%27,mode:quick,to:%27now%27))", "type": "deploy_codeserver_binding", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/workflows/7851c0be-7149-11e6-9b75-bc764e10d7c2' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:12:34 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9645d8d0-7149-11e6-9653-a5d7113f7423 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "797833ec-7149-11e6-9b75-bc764e10d7c2", "finished_at": 1472847150.926381, "params": {"site_name": "behat-tests", "label": "behat-tests"}, "reason": "", "result": "succeeded", "role": "owner", "started_at": 1472847104.679475, "task_ids": ["7851edf0-7149-11e6-9b75-bc764e10d7c2", "791a5ca4-7149-11e6-9b75-bc764e10d7c2", "791d540e-7149-11e6-9b75-bc764e10d7c2", "792044b6-7149-11e6-9b75-bc764e10d7c2", "792447e6-7149-11e6-9b75-bc764e10d7c2", "79261a44-7149-11e6-9b75-bc764e10d7c2", "7927f512-7149-11e6-9b75-bc764e10d7c2", "7972423e-7149-11e6-9b75-bc764e10d7c2", "7973be8e-7149-11e6-9b75-bc764e10d7c2", "7976e294-7149-11e6-9b75-bc764e10d7c2", "7977853c-7149-11e6-9b75-bc764e10d7c2", "797833ec-7149-11e6-9b75-bc764e10d7c2"], "trace_id": "784e0870-7149-11e6-847f-95bfcb868b44", "type": "create_site", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "7851c0be-7149-11e6-9b75-bc764e10d7c2", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "quicksilver_pre_tasks": [], "phase": "finished", "queued_time": null, "run_time": 46.246906042099, "created_at": 1472847104.655379, "environment": null, "quicksilver_post_tasks": [], "total_time": 46.27100205421448, "active_description": "Created new site \"behat-tests\"", "description": "Create a new site", "step": 12, "has_operation_log_output": false, "number_of_tasks": 12, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:784e0870-7149-11e6-847f-95bfcb868b44%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:06:44.655379Z%27,mode:quick,to:%272016-09-02T20:17:30.926381Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/132856/", "number": 132856, "phase": "STARTED", "estimated_duration": 10932, "duration": 0, "full_url": "https://162.209.95.119:8090/jenkins/job/chef_solo_bindings/132856/"}, "environment": "dev", "finished_at": 1472847143.785375, "fn_name": "queue_jenkins_task", "has_error": false, "params": {"host": "162.209.95.119", "task_type": "deploy_dbserver_binding", "job_id": "797833ec-7149-11e6-9b75-bc764e10d7c2", "binding_id": "92ad39a3ce1144cb9958519fb84cad10"}, "queued_at": 1472847132.630032, "responses": [{"code": 201, "body": "Successfully queued deploy_dbserver_binding", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847138.071615, "trace_id": "784e0870-7149-11e6-847f-95bfcb868b44", "user_id": "pantheon", "workflow_id": "7851c0be-7149-11e6-9b75-bc764e10d7c2", "id": "797833ec-7149-11e6-9b75-bc764e10d7c2", "key": "1472846400", "queued_time": 5.441582918167114, "host": "162.209.95.119", "phase": "finished", "created_at": 1472847106.585086, "run_time": 5.713760137557983, "total_time": 37.20028901100159, "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:784e0870-7149-11e6-847f-95bfcb868b44%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:06:46.585086Z%27,mode:quick,to:%272016-09-02T20:17:23.785375Z%27))", "type": "deploy_dbserver_binding", "build_url": "https://162.209.95.119:8090/jenkins/job/chef_solo_bindings/132856/", "messages": {"2016-09-02T20:12:34.956536": {"message": "Successfully queued deploy_dbserver_binding", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '404' - message: 'Not Found' - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:12:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9888c3f0-7149-11e6-af8f-69992fe0d1e7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' -- - request: - method: GET - url: 'https://onebox/api/sites/39ea8e9a-7fa7-408f-843e-ea493787fba8?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:12:39 GMT' - Content-Type: application/json - Content-Length: '2638' - Connection: keep-alive - X-Pantheon-Trace-Id: 9909b3c0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1472847104, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "preferred_zone": "chios", "service_level": "free", "label": "behat-tests", "id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1432325757, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Ronan Dowling", "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 3, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1433965307, "google_adwords_account_registered_sent": 1432325633, "invites_to_user": 3, "utm_medium": "", "job_function": null, "tracking_first_workflow_in_live": 1433965317, "tracking_first_team_invite": 1442441145, "firstname": "Ronan", "invites_to_site": 2, "lastname": "Dowling", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433965452, "last-org-spinup": "none", "tracking_first_site_create": 1432650526, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1472142127, "google_adwords_paid_for_site_sent": 1472142183, "modified": 1432325616, "maxdevsites": 500, "lead_type": "", "organization": null}, "id": "11111111-1111-1111-1111-111111111111", "email": "ronan@getpantheon.com"}, "settings": {"allow_domains": false, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat-tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": 53, "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "max_num_cdes": 10, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1472847104, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false}, "base_domain": null, "attributes": {"label": "behat-tests"}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/39ea8e9a-7fa7-408f-843e-ea493787fba8/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"deploy_product","params":{"product_id":"e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:12:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 99828d40-7149-11e6-af8f-69992fe0d1e7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "role": "owner", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "99f09c04-7149-11e6-a7dc-bc764e1141f9", "id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1472847160.448446, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Deploying CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 2, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "waiting_for_task": {"allow_concurrent": true, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "99f09c04-7149-11e6-a7dc-bc764e1141f9", "hostname_id": "dev-behat-tests.pantheonsite.io"}, "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "99f09c04-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "created", "created_at": 1472847161.061274, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.061274Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/39ea8e9a-7fa7-408f-843e-ea493787fba8/workflows/9993196c-7149-11e6-a7dc-bc764e1141f9' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/39ea8e9a-7fa7-408f-843e-ea493787fba8/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.12.0 (php_version=5.5.26&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a9d6b270-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"live": {"environment_created": 1472847107, "dns_zone": "pantheonsite.io", "randseed": "8P0ZWEMG9QV90L726SDYZ7AWHP3BRSZI", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-01.pantheon.io"}, "dev": {"on_server_development": true, "environment_created": 1472847105, "dns_zone": "pantheonsite.io", "randseed": "XJSZIK75LPYDGSFCL7B3FSKYEL1V35AX", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "8e93570be725b8b67e69e9e6f3b0816f2e925ef0", "styx_cluster": "styx-01.pantheon.io"}, "test": {"environment_created": 1472847106, "dns_zone": "pantheonsite.io", "randseed": "172C7PAX1Q6IPK6HWGTYCEBRZ4J05JR3", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-03.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '[{"machine_name": "advostarter-d8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Advostarter D8", "organization_id": "2d9c0d71-3bc6-4f3a-8517-d4de231ed69a", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "cbdeadf3-669f-4848-94f5-c2354f256de8"}, {"machine_name": "openatrium2", "description": "[Atrium](http://openatrium.com/) is an adaptable platform that allows you to confidently engage with your colleagues through convenient collaboration.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openatrium-icon.png", "label": "Atrium", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "31bc4254-be20-4e8d-afe6-6c585e58435a"}, {"machine_name": "backdrop", "description": "Backdrop is a fully-featured content management system that allows non-technical users to manage a wide-variety of content. It can be used to create blogs, forums, image galleries, social networks, intranets, and more.", "connection_mode_default": "git", "icon_url": "https://live-pantheon-assets.gotpantheon.com/files/product_icons/backdrop.png", "label": "Backdrop", "organization_id": "36b51e56-4969-4deb-a0e2-093bcc66862c", "framework": "backdrop", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "bf703821-4c18-45a1-88b8-3d9ec302273d"}, {"machine_name": "cuexpress", "description": "The Express install profile designed and supported by Developers to allow Site Owners to create great looking websites that meet a university''s accessibility, security, and branding policies. Site Owner are not Site Builders. Express users are not expected (or allowed) to create content types, fields, or views. While limiting, this approach makes it possible to maintain a large number of Express sites with a relatively small staff.", "connection_mode_default": "sftp", "icon_url": "https://www.cu.edu/sites/all/themes/cu/logo_small.png", "label": "CU Express 3", "organization_id": "63a252dd-5802-4e3e-ad99-02ddee681f34", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "6413825e-7c23-3549-bbf1-c797251bf6e9"}, {"machine_name": "civicrm_starterkit", "description": "[CiviCRM](http://civicrm.org/) is a web-based, open source, CRM geared toward meeting the needs of non-profit and civic-sector organizations. The starter kit integrates CiviCRM with Drupal.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/civicrm-icon.png", "label": "CiviCRM Starter Kit", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "3b754bc2-48f8-4388-b5b5-2631098d03de"}, {"machine_name": "kickstart", "description": "A software distribution for sites of any size that provides all the power and flexibility of Drupal Commerce, combined with components that accelerate creation and launch of an online store.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/commerce-kickstart-icon.png", "label": "Commerce Kickstart", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8a662dde-53d6-4fdb-8eac-eea9f5848d00"}, {"machine_name": "dkan", "description": "DKAN is a Drupal-based open data platform with a full suite of cataloging, publishing and visualization features that allows governments, nonprofits and universities to easily publish data to the public.", "connection_mode_default": "git", "icon_url": "https://cloud.githubusercontent.com/assets/512243/4800565/8f59086c-5e27-11e4-9f4f-5df0a5731282.png", "label": "DKAN", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "d7370d7e-46fb-4b10-b79f-942b5abf51de"}, {"machine_name": "demo-upstream", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Demo Upstream", "organization_id": "e106ce89-29d1-4c3f-962c-39d2ce73c97f", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "b1057113-272a-4509-b0b0-1362ec31d71c"}, {"machine_name": "drops-8-composer", "description": "Drops-8, managed by Composer", "connection_mode_default": "sftp", "icon_url": "https://getcomposer.org/img/logo-composer-transparent.png", "label": "Drops 8 Composer", "organization_id": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "35b0e365-a191-4c70-adbe-9d02d01343f3"}, {"machine_name": "drupal6", "description": "Drupal 6 sites run on Pantheon, but Drupal 6 reached end of life on February 24th, 2016.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal6-icon.jpg", "label": "Drupal 6", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, {"machine_name": "drupal7", "description": "The most widely installed release of the powerful open source content management platform.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, {"machine_name": "drupal8", "description": "Launch, manage, and scale ambitious digital experiences\u2014with the flexibility to build great websites or push beyond the browser. Proudly open source.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal8-icon.png", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, {"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "easteregg-kit", "description": "Easterseals Main Distribution - Developed and Managed by Molly Duggan Associates for exclusive use on Easterseals.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20Stacked%20CMYK%20300.png", "label": "EasterEgg Kit", "organization_id": "c27b42df-c2cb-c2ae-d979-ddc254a8bc44", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6"}, {"machine_name": "drupal-patterns", "description": "This is the Elephant Ventures profile distribution called Drupal Patterns.\r\nIt''s a responsive theme built for marketing websites.", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/ev-logo-square-sm.png", "label": "Elephant Ventures Drupal Patterns", "organization_id": "9813aeef-d889-4afc-9dfd-5a7433a853c9", "framework": "drupal", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "0fce9338-bd6f-4b87-a489-e9928a027696"}, {"machine_name": "empty-7", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Empty Drupal 7", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "f575e77a-ff49-4bab-a53c-dbf8f59247bc"}, {"machine_name": "empty", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/sites/all/modules/drupalorg/drupalorg/images/d8.svg", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "core", "is_organization_association_forced": 0, "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, {"machine_name": "empty-wordpress", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "Empty WordPress", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f"}, {"machine_name": "fcpsschools", "description": "Fairfax County Public Schools install profile", "connection_mode_default": "sftp", "icon_url": "https://forumone.com/apple-touch-icon-76x76.png", "label": "Fairfax County Public Schools", "organization_id": "a7e4d66b-ab92-481b-ab77-626b8562544e", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 0, "id": "c28628b2-6b8f-4962-9838-69295c3fff68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "openoutreach", "description": "[Open Outreach](http://drupal.org/project/openoutreach) is a Drupal distribution written to provide grassroots, activist, and nonprofit groups with the web tools they need for effective public engagement.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openoutreach-icon.png", "label": "Open Outreach", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "4c17f505-05d0-4b79-b38a-0bc548405a10"}, {"machine_name": "openrestaurant", "description": "The [Open Restaurant distribution](http://open.restaurant/) has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog, events management and a responsive theme.\r\n", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/styles/grid-3/public/project-images/open-restaurant-logo.png", "label": "Open Restaurant", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "6eb1ad36-afef-46d7-90d1-3a1bd4296863"}, {"machine_name": "openaid", "description": "[OpenAid](https://openaiddistro.org) is a turnkey website platform designed to help cause-driven organizations create cost-effective program-focused websites quickly.\r\n", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/files/product_icons/open-aid.png", "label": "OpenAid", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "2adff196-4672-44c9-af2a-4590963b90d8"}, {"machine_name": "openideal", "description": "[OpenideaL](http://www.openidealapp.com/) is an idea management system, for both public and commercial sectors. It is a powerful tool to analyze public opinion regarding products/services and identify trends.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openideal-icon.png", "label": "OpenIdeaL", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "86112161-4cb2-410f-8bb1-8a1fb4f56dae"}, {"machine_name": "openpublic", "description": "[OpenPublic](http://openpublicapp.com/) provides a content management system specially designed for open government goals, without compromising accessibility, security or usability.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublic-icon.png", "label": "OpenPublic", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "b459145b-8771-4597-8b84-684a3d93dce0"}, {"machine_name": "openpublish", "description": "[OpenPublish](http://openpublishapp.com/) is a flexible and powerful CMS designed for the online news industry. It is built for flexibility, customization, and extension to help publishers focus on their content.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublish-icon.png", "label": "OpenPublish", "organization_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908"}, {"machine_name": "panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is a Panels powered distribution designed to be a base framework upon which to build other Drupal distributions, but will also work for general site building.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8ad1efe0-0231-42ae-9520-c96241495b82"}, {"machine_name": "try_panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is an enhanced version of Drupal with drag & drop page building tools, responsive layouts, a WYSIWYG, and [more.](\u201dhttp://drupal.org/node/1679838\u201d) See how awesome Drupal can be, right out of the box.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "plato_tipico", "description": "This is a a preconfigured distro with multi-language support for English & Spanish. Already comes with most of the necessary modules which will save you lots of time and research.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/plato-tipico-icon.png", "label": "Plato T\u00edpico", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "216f85b2-620b-470d-9597-f64ade76dc9a"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "pushtape", "description": "Build better music websites with [Pushtape](http://drupal.org/project/pushtape), a Drupal distribution for musicians. Manage your music discography, create news updates, upload photos, post upcoming shows and more.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/pushtape-icon.png", "label": "Pushtape", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "f141b5e0-a614-4294-a86c-6c24df9bf6c5"}, {"machine_name": "redhen_raiser", "description": "RedHen Raiser is a Drupal distribution for quickly launching peer-to-peer fundraising campaigns (also referred to as crowd fundraising, team fundraising, or viral fundraising campaigns). Individual and team fundraisers join campaigns with their own customizable pages and individual goals, all contributing to the overall campaign. RedHen Raiser features easy campaign creation for teams or individuals, goal progress widgets, campaign updates, automated start and end dates, single page donation forms, and it''s Commerce ready, just add your payment method and go!", "connection_mode_default": "sftp", "icon_url": "https://assets.getpantheon.com/files/product_icons/redhen-logo.png", "label": "RedHen Raiser", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "10d6937e-1dd2-4490-9950-11867ba43597"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}, {"machine_name": "rtupstream", "description": "This a test upstream created by Ruby", "connection_mode_default": "sftp", "icon_url": "http://screencast.com/t/WdHX3CRFAc", "label": "Ruby Test Upstream", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "framework": "wordpress", "is_public_spinup_allowed": 0, "type": "product", "is_organization_association_forced": 0, "id": "10d2f3a5-728a-460f-afa9-dbaee10eef3b"}, {"machine_name": "rutgers_wp_custom", "description": "Rutgers University WordPress Custom Distribution for School Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers School Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "e44da442-2b1e-639a-f790-edf7cb26c9a0"}, {"machine_name": "ruwwpucd", "description": "Rutgers University WordPress Custom Distribution for Unit/Organization Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers Unit/Department Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "64408272-2d4b-614a-753b-334a2baf4263"}, {"machine_name": "sprowt-09022016", "description": "A Drupal 7 upstream for Pantheon", "connection_mode_default": "git", "icon_url": "http://www.coalmarch.com/sites/default/files/sprowt-logo.png", "label": "Sprowt", "organization_id": "08b99cd5-81a3-4b67-acc1-d5dba50390f8", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "158e2876-13a4-427f-96cf-d29a3daa538b"}, {"machine_name": "static_html", "description": "This is an upstream for Pantheon that is used for static HTML/JS/CSS sites ", "connection_mode_default": "git", "icon_url": "https://image.freepik.com/free-icon/html-5-logo_318-79489.png", "label": "Static HTML", "organization_id": "f057733a-d6a0-4985-81fd-1174cd5da49b", "framework": "unknown", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "de858279-cb87-4664-825c-fcb4c2928717"}, {"machine_name": "test-ps-digital", "description": "Test Custom Upstream created during the Jump Start", "connection_mode_default": "git", "icon_url": null, "label": "Test PS Digital", "organization_id": "977a8c1f-b420-499f-a675-af5dfadd55a6", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "8ed60b88-e3bb-4981-9701-777ee9e40435"}, {"machine_name": "wordpress", "description": "Open source software with powerful features, and the freedom to build anything you want.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "WordPress", "organization_id": "", "framework": "wordpress", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, {"machine_name": "wordpress-class", "description": "Wordpress 2017 for the Exchange Students of Shasta College", "connection_mode_default": "sftp", "icon_url": null, "label": "Wordpress Class", "organization_id": "8badbb50-093d-41db-8dd1-6aa78f9a6113", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "11111111-1111-1111-1111-111111111111"}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:761e105e-7149-11e6-af98-bc764e11bdd3:vksclEA6XcMdTsaPbpujo' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' diff --git a/tests/fixtures/site-delete.yml b/tests/fixtures/site-delete.yml deleted file mode 100644 index e7404245a..000000000 --- a/tests/fixtures/site-delete.yml +++ /dev/null @@ -1,157 +0,0 @@ - -- - 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/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 09 Jan 2019 00:05:29 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 4608ead0-13a2-11e9-8454-d1f8a91c4678 - 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:11111111-1111-1111-1111-111111111111:111111111111111111111","expires_at":1549411529,"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/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 09 Jan 2019 00:05:31 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 4733af30-13a2-11e9-927f-4d6a5b1d3f72 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 09 Jan 2019 00:05:32 GMT' - Content-Type: application/json - Content-Length: '4115' - Connection: keep-alive - X-Pantheon-Trace-Id: 47b0ce70-13a2-11e9-8454-d1f8a91c4678 - 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": 1546992153, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal8", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2019-01-09T00:03:50", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "drupal8", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "url": "https://github.com/pantheon-systems/drops-8.git", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "branch": "master", "repository_url": "https://github.com/pantheon-systems/drops-8.git", "type": "core", "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, "label": "Site to be deleted", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 3, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 27, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 24, "registration_context": null, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Sara", "invites_to_site": 22, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 5, "tracking_first_site_upgrade": 1433800858, "seens": {"partner-program": true, "new-plans": true, "annual-billing": true, "terminus-1": true, "global-cdn": true, "has_dismissed_upgrade_https": true, "skip-cms-installation": {"b774bb32-81f1-42f3-832a-61aae89ad421": true}}, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 8, "migration_method": null, "current_num_domains": 0, "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/drops-8.git", "product_id": "8a129104-9d37-4082-aaf8-e6f31154644e", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "framework": "drupal8", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1546992153, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2019-01-09T00:03:50", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Site to be deleted", "m3_ui": true}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - body: '{"type":"delete_site","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 09 Jan 2019 00:05:35 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 49823310-13a2-11e9-927f-4d6a5b1d3f72 - 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: '{"params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "task_ids": ["4992af24-13a2-11e9-9f39-42010a800117", "49947ba6-13a2-11e9-9f39-42010a800117", "49b8547c-13a2-11e9-9f39-42010a800117", "49b8662e-13a2-11e9-9f39-42010a800117", "49cc5d8c-13a2-11e9-9f39-42010a800117", "49cc7966-13a2-11e9-9f39-42010a800117", "49ed2882-13a2-11e9-9f39-42010a800117", "49ed3fde-13a2-11e9-9f39-42010a800117", "49ed52d0-13a2-11e9-9f39-42010a800117", "49f9436a-13a2-11e9-9f39-42010a800117", "49fb13c0-13a2-11e9-9f39-42010a800117", "49fd3f10-13a2-11e9-9f39-42010a800117"], "trace_id": "49823310-13a2-11e9-927f-4d6a5b1d3f72", "type": "delete_site", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "1546992000", "waiting_for_task_id": "4992af24-13a2-11e9-9f39-42010a800117", "environment_id": null, "keep_forever": false, "phase": "created", "queued_time": null, "run_time": null, "created_at": 1546992335.08223, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Delete site", "description": "Delete site", "step": 1, "has_operation_log_output": false, "number_of_tasks": 12, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:49823310-13a2-11e9-927f-4d6a5b1d3f72%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-09T00:00:35.082230Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|devuser@pantheon.io", "created_at": 1433793438, "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": null, "fn_name": "trigger_task", "initialized_at": 1546992335.893246, "params": {"site_id": "11111111-1111-1111-1111-111111111111", "task_type": "delete_site", "user_id": "11111111-1111-1111-1111-111111111111"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "49823310-13a2-11e9-927f-4d6a5b1d3f72", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "4992af24-13a2-11e9-9f39-42010a800117", "key": "1546992000", "responses": [], "queued_time": null, "host": null, "result": null, "phase": "initialized", "created_at": 1546992335.149034, "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:49823310-13a2-11e9-927f-4d6a5b1d3f72%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-01-09T00:00:35.149034Z%27,mode:quick,to:%27now%27))", "type": "delete_site", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - Accept: null - response: - status: - http_version: '1.1' - code: '404' - message: 'Not Found' - headers: - Server: nginx - Date: 'Wed, 09 Jan 2019 00:05:37 GMT' - Content-Type: text/plain - Content-Length: '11' - Connection: keep-alive - X-Pantheon-Trace-Id: 4b2fbc00-13a2-11e9-b8ca-69d5f6caf799 - 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: "Not found.\n" diff --git a/tests/fixtures/site-import-complete.yml b/tests/fixtures/site-import-complete.yml deleted file mode 100644 index 977282538..000000000 --- a/tests/fixtures/site-import-complete.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:56651220-659c-11e6-96e2-bc764e1022a9:fxqCDJV8PdEOmjcUj6A7f' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:03 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 04b1de70-663e-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1","expires_at":1474051923,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:04 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 055ff8c0-663e-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:05 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 05f69370-663e-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:06 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 064799a0-663e-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-18T23:31:16", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 068ce000-663e-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 0, "diffstat": {"license.txt": {"deletions": "385", "status": "D", "additions": "0"}}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "a6a94cff8dbc3f15c93b2d3c6777aa334a476927", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:04f7b760-663e-11e6-bbb1-bc764e105ecb:J8QY8666uM0vBlhqAwPL1' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"complete_migration","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 18:52:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 070bfb10-663e-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "0718e3c0-663e-11e6-b50a-bc764e10d7c2", "finished_at": 1471632727.550763, "params": {}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471632727.479672, "task_ids": ["0718e3c0-663e-11e6-b50a-bc764e10d7c2"], "trace_id": "070bfb10-663e-11e6-a69e-9d129c74acd7", "type": "complete_migration", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471629600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.0710909366607666, "created_at": 1471632727.434516, "environment": null, "total_time": 0.11624693870544434, "active_description": "Completed migration", "description": "Complete migration", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:070bfb10-663e-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T18:47:07.434516Z%27,mode:quick,to:%272016-08-19T18:57:07.550763Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "finished_at": 1471632727.527247, "fn_name": "trigger_task", "params": {"task_type": "complete_site_migration", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471632727.480006, "responses": [{"code": 200, "body": "Migration marked as completed for site 11111111-1111-1111-1111-111111111111", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471632727.480008, "trace_id": "070bfb10-663e-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "0718e3c0-663e-11e6-b50a-bc764e10d7c2", "key": "1471629600", "queued_time": 1.9073486328125e-06, "host": null, "phase": "finished", "created_at": 1471632727.4456, "allow_concurrent": false, "run_time": 0.047239065170288086, "total_time": 0.08164691925048828, "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:070bfb10-663e-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T18:47:07.445600Z%27,mode:quick,to:%272016-08-19T18:57:07.527247Z%27))", "type": "complete_site_migration", "build_url": null, "messages": {"2016-08-19T18:52:07.573949": {"message": "Migration marked as completed for site 11111111-1111-1111-1111-111111111111", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "params": {"bucket": "onebox-pantheon-backups", "key": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz"}, "role": "team_member", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432743.304635, "task_ids": ["3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "3de97a00-9afe-11e6-bab2-bc764e1141f9", "3deacdec-9afe-11e6-bab2-bc764e1141f9", "3dec609e-9afe-11e6-bab2-bc764e1141f9"], "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "type": "restore_files", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1477432742.742033, "reason": "", "environment": "dev", "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Restoring files in \"dev\"", "description": "Restore files on \"dev\"", "step": 1, "has_operation_log_output": false, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:02.742033Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"build": {"url": "job/restore_site/39952/", "number": 39952, "phase": "STARTED", "estimated_duration": 1300, "duration": 0, "full_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/"}, "environment": "dev", "fn_name": "queue_jenkins_task", "params": {"files": "11111111-1111-1111-1111-111111111111/dev/behat-tests_dev_2016-10-25T19-13-37_UTC_files.tar.gz", "code": "", "job_id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "database": "", "bucket": "onebox-pantheon-backups", "site": "11111111-1111-1111-1111-111111111111", "host": "ellis.live.getpantheon.com", "task_type": "restore_site", "env": "dev"}, "queued_at": 1477432743.305127, "responses": [{"code": 201, "body": "Successfully queued restore_site", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1477432747.469298, "trace_id": "3d78b3b0-9afe-11e6-b314-979f151aa514", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "3dc8cc10-9afe-11e6-bab2-bc764e1141f9", "key": "1477429200", "queued_time": 4.164170980453491, "host": "ellis.live.getpantheon.com", "result": "succeeded", "phase": "started", "created_at": 1477432743.031912, "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:3d78b3b0-9afe-11e6-b314-979f151aa514%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-25T21:54:03.031912Z%27,mode:quick,to:%27now%27))", "type": "restore_site", "build_url": "https://104.239.201.18:8090/jenkins/job/restore_site/39952/", "messages": {"2016-10-25T21:59:08.136844": {"message": "Successfully queued restore_site", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-info-owner.yml b/tests/fixtures/site-info-owner.yml deleted file mode 100644 index 2b1bb5f5b..000000000 --- a/tests/fixtures/site-info-owner.yml +++ /dev/null @@ -1,181 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:3af040f8-6643-11e6-957b-bc764e10b0ce:FLPkt6en69pSHngrNZCa2' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:3af040f8-6643-11e6-957b-bc764e10b0ce:FLPkt6en69pSHngrNZCa2' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:34:03 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: e21b49e0-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io","expires_at":1474054443,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:34:03 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: e2d942b0-6643-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:34:04 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e35c7c70-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:34:05 GMT' - Content-Type: application/json - Content-Length: '3460' - Connection: keep-alive - X-Pantheon-Trace-Id: e39c92b0-6643-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:e2850196-6643-11e6-880b-bc764e105ecb:YjeZ2YTfSDzVH7DGLI2Io' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:34:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e3ede700-6643-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' diff --git a/tests/fixtures/site-info.yml b/tests/fixtures/site-info.yml deleted file mode 100644 index 77e1c7b59..000000000 --- a/tests/fixtures/site-info.yml +++ /dev/null @@ -1,252 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:eecbc374-6641-11e6-b1a5-bc764e1022a9:JKej2eDUNkzkxn2rQWxLM' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:22:46 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 4f4a4180-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ","expires_at":1474053766,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:22:47 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 4fc39030-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:22:48 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5044ce20-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:22:48 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: 50902f00-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "preferred_zone_label": "United States", "service_level": "free", "plan_name": "Sandbox", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "plan_name": "Sandbox", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "preferred_zone_label": "United States", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:22:49 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 50df8780-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"multidev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/code-upstream-updates' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.1 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 20 Sep 2016 18:49:44 GMT' - Content-Type: application/json - Content-Length: '1575' - Connection: keep-alive - X-Pantheon-Trace-Id: ff026b50-7f62-11e6-88c9-699df0f70b59 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"remote_head": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "ahead": 7, "update_log": {"cccdd26e7c511bebbd40b23e6756056f8eb7bd3d": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "author": "Pantheon Automation", "labels": [], "datetime": "2016-09-07T19:06:47", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "Update to WordPress 4.6.1. For more information, see: https://wordpress.org/news/2016/09/wordpress-4-6-1-security-and-maintenance-release/\n", "email": "bot@getpantheon.com"}, "99d9779d7924d37be5750954b774ec786a95e5e0": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "99d9779d7924d37be5750954b774ec786a95e5e0", "author": "Pantheon Automation", "labels": [], "datetime": "2016-08-16T20:13:12", "parents": ["85431ad7eefbc602420812a1ab891965642c2183"], "message": "Update to WordPress 4.6. For more information, see: https://wordpress.org/news/2016/08/pepper/\n", "email": "bot@getpantheon.com"}}, "remote_branch": "refs/remotes/origin/master", "behind": 2, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments/multidev/code-log' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4f8bbe76-6642-11e6-8dab-bc764e1141f9:ML0AYyyIBNTuvnHrDtxQJ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:14:53 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3507a660-6641-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"gravitar_url": "https://secure.gravatar.com/avatar/9631f4a345eabaa121f599004f32fab2?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "1fdf194d3d7a0c930a4f118e1398412765320328", "author": "Root", "labels": ["test", "live", "dev"], "datetime": "2016-08-16T22:09:25", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "\"Initial Commit\"\n", "email": "root@getpantheon.com"}]' diff --git a/tests/fixtures/site-list-empty.yml b/tests/fixtures/site-list-empty.yml deleted file mode 100644 index d31d87ee8..000000000 --- a/tests/fixtures/site-list-empty.yml +++ /dev/null @@ -1,145 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: d4921c00-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV","expires_at":1473809178,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:19 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: d5b08450-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d62c9220-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d6cf88e0-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' diff --git a/tests/fixtures/site-list.yml b/tests/fixtures/site-list.yml deleted file mode 100644 index 2ea618c6c..000000000 --- a/tests/fixtures/site-list.yml +++ /dev/null @@ -1,251 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f658daf4-6403-11e6-bc71-bc764e1141f9:IhFR9be2Zk37T8nJg0S9M' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: d4921c00-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV","expires_at":1473809178,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:19 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: d5b08450-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d62c9220-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site": {"created_by_user_id": "11111111-1111-1111-1111-111111111111", "user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "longname": "WordPress"}, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "user_in_charge": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "created": 1471385341, "upstream_updates_by_environment": {"remote_head": "99d9779d7924d37be5750954b774ec786a95e5e0", "ahead": 1, "remote_branch": "refs/remotes/origin/master", "live": {}, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "behind": 0, "has_code": true, "test": {}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/WordPress"}, "last_code_push": {"timestamp": "2016-08-16T22:09:26", "user_uuid": null}, "framework": "wordpress", "holder_type": "user", "service_level": "free", "plan_name": "Sandbox", "php_version": "55", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "attributes": {"label": "behat tests"}, "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "11111111-1111-1111-1111-111111111111", "preferred_zone": "chios", "preferred_zone_label": "United States", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:26:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: d6cf88e0-6408-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:32:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bc53a360-6409-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:32:46 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: bc93e0b0-6409-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-16T22:09:26", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "preferred_zone_label": "United States", "service_level": "free", "plan_name": "Sandbox", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "plan_name": "Sandbox", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "preferred_zone_label": "United States", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-16T22:09:26", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 23:32:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bce05300-6409-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 0, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-02.pantheon.io"}}' diff --git a/tests/fixtures/site-lookup-dne.yml b/tests/fixtures/site-lookup-dne.yml deleted file mode 100644 index ab0de4ff9..000000000 --- a/tests/fixtures/site-lookup-dne.yml +++ /dev/null @@ -1,215 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:23 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: ac821620-6642-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u","expires_at":1474053923,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:24 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: ad15f1b0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:24 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ad8bbdf0-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:25 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: adc1c210-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ae00c6e0-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/site-names/invalid' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:acc04c56-6642-11e6-8c8e-bc764e1141f9:Y6JlTcTCyW8PpJekufc9u' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '404' - message: 'Not Found' - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ae58f900-6642-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '"A site named invalid was not found."' diff --git a/tests/fixtures/site-lookup.yml b/tests/fixtures/site-lookup.yml deleted file mode 100644 index b91c769fd..000000000 --- a/tests/fixtures/site-lookup.yml +++ /dev/null @@ -1,181 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:77e50b0c-6642-11e6-8be4-bc764e105ecb:uzdxKY3AcFVxcqoowUaI1' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:20 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: aa9fe8a0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx","expires_at":1474053920,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:20 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: ab15b4e0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:21 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ab8f9fd0-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:21 GMT' - Content-Type: application/json - Content-Length: '3420' - Connection: keep-alive - X-Pantheon-Trace-Id: abcd6c20-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:aae2ccec-6642-11e6-9005-bc764e11bdd3:uqP3xb84vBpKyriU8oeIx' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:25:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ac146030-6642-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": false, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' diff --git a/tests/fixtures/site-org-add.yml b/tests/fixtures/site-org-add.yml deleted file mode 100644 index b15ca63dd..000000000 --- a/tests/fixtures/site-org-add.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:18 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 911ef950-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:18 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 9157e3a0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 91a34480-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:19 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 92093240-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:90b6b16a-6982-11e6-9d18-bc764e11227e:gKoUVtRHwEqHrPfuZuEHr' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"add_site_organization_membership","params":{"organization_name":"Organization Name","role":"team_member"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:20 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 924aa810-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "925121cc-6982-11e6-9f69-bc764e11227e", "finished_at": 1471992020.420396, "params": {"organization_name": "Organization Name", "role": "team_member"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471992020.304188, "task_ids": ["925121cc-6982-11e6-9f69-bc764e11227e"], "trace_id": "924aa810-6982-11e6-9ba8-733939e0aeaf", "type": "add_site_organization_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "924fb648-6982-11e6-9f69-bc764e11227e", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.11620807647705078, "created_at": 1471992020.274132, "environment": null, "total_time": 0.14626407623291016, "active_description": "Added \"organization-name\" as a supporting organization", "description": "Add supporting organization to site", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:924aa810-6982-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:35:20.274132Z%27,mode:quick,to:%272016-08-23T22:45:20.420396Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1471992020.402772, "fn_name": "trigger_task", "params": {"organization_name": "Organization Name", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "task_type": "add_site_organization_membership", "role": "team_member"}, "queued_at": 1471992020.304321, "responses": [{"code": 200, "body": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471992020.304326, "trace_id": "924aa810-6982-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "924fb648-6982-11e6-9f69-bc764e11227e", "id": "925121cc-6982-11e6-9f69-bc764e11227e", "key": "1471989600", "queued_time": 5.0067901611328125e-06, "host": null, "phase": "finished", "created_at": 1471992020.283438, "allow_concurrent": false, "run_time": 0.09844589233398438, "total_time": 0.11933398246765137, "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:924aa810-6982-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:35:20.283438Z%27,mode:quick,to:%272016-08-23T22:45:20.402772Z%27))", "type": "add_site_organization_membership", "build_url": null, "messages": {"2016-08-23T22:40:20.436448": {"message": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/924fb648-6982-11e6-9f69-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476251064.905836, "task_ids": ["ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "ee48de92-903e-11e6-b8fe-bc764e11bdd3", "ee49a728-903e-11e6-b8fe-bc764e11bdd3", "ee4b393a-903e-11e6-b8fe-bc764e11bdd3", "ee4c23a4-903e-11e6-b8fe-bc764e11bdd3", "ee4ce06e-903e-11e6-b8fe-bc764e11bdd3", "ee67da2c-903e-11e6-b8fe-bc764e11bdd3", "ee6a1576-903e-11e6-b8fe-bc764e11bdd3", "ee6ba378-903e-11e6-b8fe-bc764e11bdd3", "ee6c30ea-903e-11e6-b8fe-bc764e11bdd3", "ee6d8e4a-903e-11e6-b8fe-bc764e11bdd3", "ee6e457e-903e-11e6-b8fe-bc764e11bdd3", "ee9d0972-903e-11e6-b8fe-bc764e11bdd3", "eea026de-903e-11e6-b8fe-bc764e11bdd3", "eea1e0d2-903e-11e6-b8fe-bc764e11bdd3", "eea99048-903e-11e6-b8fe-bc764e11bdd3", "eeab23ea-903e-11e6-b8fe-bc764e11bdd3", "eead0534-903e-11e6-b8fe-bc764e11bdd3", "eeae0a6a-903e-11e6-b8fe-bc764e11bdd3"], "trace_id": "edf2e730-903e-11e6-95e3-7f44a98461f1", "type": "add_site_organization_membership", "user_id": "11111111-1111-1111-1111-111111111111", "id": "edf84266-903e-11e6-b8fe-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1476251063.622103, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Added \"organization-name\" as a supporting organization", "description": "Add \"Organization Name\" as a supporting organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 19, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:edf2e730-903e-11e6-95e3-7f44a98461f1%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:39:23.622103Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "add_site_organization_membership", "job_id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "hostname_id": "test-behat-tests.pantheonsite.io"}, "queued_at": 1476251064.90615, "responses": [{"code": 201, "body": "Added \"organization-name\" as a supporting organization", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "edf2e730-903e-11e6-95e3-7f44a98461f1", "workflow_id": "edf84266-903e-11e6-b8fe-bc764e11bdd3", "id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "key": "1476248400", "queued_time": null, "host": "localhost", "result": "succeeded", "phase": "queued", "created_at": 1476251064.134713, "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:edf2e730-903e-11e6-95e3-7f44a98461f1%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:39:24.134713Z%27,mode:quick,to:%27now%27))", "type": "add_site_organization_membership", "build_url": null, "messages": {"2016-10-12T05:44:26.029623": {"message": "Added \"organization-name\" as a supporting organization", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-org-list-empty.yml b/tests/fixtures/site-org-list-empty.yml deleted file mode 100644 index 80cbaf7d4..000000000 --- a/tests/fixtures/site-org-list-empty.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: POST - url: 'https://onebox/api/authorize' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: post - absolute_url: '' - json: password1 - Accept: null - body: '{"email":"devuser@pantheon.io","password":"password1"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 94f99b70-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx","expires_at":1474411224,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 95602570-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:25 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 959984f0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 95dad3b0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9639e3a0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' diff --git a/tests/fixtures/site-org-list.yml b/tests/fixtures/site-org-list.yml deleted file mode 100644 index 80cbaf7d4..000000000 --- a/tests/fixtures/site-org-list.yml +++ /dev/null @@ -1,254 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: POST - url: 'https://onebox/api/authorize' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: post - absolute_url: '' - json: password1 - Accept: null - body: '{"email":"devuser@pantheon.io","password":"password1"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:24 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 94f99b70-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx","expires_at":1474411224,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:25 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 95602570-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:25 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 959984f0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 95dad3b0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9500f8ac-6982-11e6-85f8-bc764e11227e:K9st5E8TAOmOevKSf74Bx' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:26 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9639e3a0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[]' diff --git a/tests/fixtures/site-org-remove.yml b/tests/fixtures/site-org-remove.yml deleted file mode 100644 index e7a9c232e..000000000 --- a/tests/fixtures/site-org-remove.yml +++ /dev/null @@ -1,324 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:21 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9330c250-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:22 GMT' - Content-Type: application/json - Content-Length: '3556' - Connection: keep-alive - X-Pantheon-Trace-Id: 936edcc0-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "business", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 13, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 8, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 6, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "business", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 7, "holder_type": "user", "number_allow_domains": 200, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:22 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 93acd020-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 940c5540-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:23 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 944ba830-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: POST - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:92d5df52-6982-11e6-93dc-bc764e11227e:1e7kwFXy2jRyVDCJHZoiJ' - verify: '' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"remove_site_organization_membership","params":{"organization_id":"11111111-1111-1111-1111-111111111111"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 23 Aug 2016 22:40:24 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 948d4510-6982-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "949361c0-6982-11e6-9d18-bc764e11227e", "finished_at": 1471992024.127439, "params": {"organization_id": "11111111-1111-1111-1111-111111111111"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471992024.093338, "task_ids": ["949361c0-6982-11e6-9d18-bc764e11227e"], "trace_id": "948d4510-6982-11e6-9ba8-733939e0aeaf", "type": "remove_site_organization_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "9491eb74-6982-11e6-9d18-bc764e11227e", "key": "1471989600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.034101009368896484, "created_at": 1471992024.063474, "environment": null, "total_time": 0.0639650821685791, "active_description": "Removed supporting organization", "description": "Remove supporting organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:948d4510-6982-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:35:24.063474Z%27,mode:quick,to:%272016-08-23T22:45:24.127439Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1463779128, "destination_organization_id": null, "is_registered": true, "created_organization_id": "11111111-1111-1111-1111-111111111111", "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": null, "finished_at": 1471992024.11213, "fn_name": "trigger_task", "params": {"organization_id": "11111111-1111-1111-1111-111111111111", "task_type": "remove_site_organization_membership", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404"}, "queued_at": 1471992024.093452, "responses": [{"code": 200, "body": "Removed supporting organization", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "started_at": 1471992024.093458, "trace_id": "948d4510-6982-11e6-9ba8-733939e0aeaf", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9491eb74-6982-11e6-9d18-bc764e11227e", "id": "949361c0-6982-11e6-9d18-bc764e11227e", "key": "1471989600", "queued_time": 5.9604644775390625e-06, "host": null, "phase": "finished", "created_at": 1471992024.073056, "allow_concurrent": false, "run_time": 0.01867198944091797, "total_time": 0.039073944091796875, "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:948d4510-6982-11e6-9ba8-733939e0aeaf%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-23T22:35:24.073056Z%27,mode:quick,to:%272016-08-23T22:45:24.112130Z%27))", "type": "remove_site_organization_membership", "build_url": null, "messages": {"2016-08-23T22:40:24.142486": {"message": "Removed supporting organization", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/workflows/9491eb74-6982-11e6-9d18-bc764e11227e' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.11&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0fe1bff2-6974-11e6-9f69-bc764e11227e:fhkc7FruJIKyO6kXk50YO' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 25 Oct 2016 21:59:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 408d1fa0-9afe-11e6-9921-b70591eddd18 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476251064.905836, "task_ids": ["ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "ee48de92-903e-11e6-b8fe-bc764e11bdd3", "ee49a728-903e-11e6-b8fe-bc764e11bdd3", "ee4b393a-903e-11e6-b8fe-bc764e11bdd3", "ee4c23a4-903e-11e6-b8fe-bc764e11bdd3", "ee4ce06e-903e-11e6-b8fe-bc764e11bdd3", "ee67da2c-903e-11e6-b8fe-bc764e11bdd3", "ee6a1576-903e-11e6-b8fe-bc764e11bdd3", "ee6ba378-903e-11e6-b8fe-bc764e11bdd3", "ee6c30ea-903e-11e6-b8fe-bc764e11bdd3", "ee6d8e4a-903e-11e6-b8fe-bc764e11bdd3", "ee6e457e-903e-11e6-b8fe-bc764e11bdd3", "ee9d0972-903e-11e6-b8fe-bc764e11bdd3", "eea026de-903e-11e6-b8fe-bc764e11bdd3", "eea1e0d2-903e-11e6-b8fe-bc764e11bdd3", "eea99048-903e-11e6-b8fe-bc764e11bdd3", "eeab23ea-903e-11e6-b8fe-bc764e11bdd3", "eead0534-903e-11e6-b8fe-bc764e11bdd3", "eeae0a6a-903e-11e6-b8fe-bc764e11bdd3"], "trace_id": "edf2e730-903e-11e6-95e3-7f44a98461f1", "type": "remove_site_organization_membership", "user_id": "11111111-1111-1111-1111-111111111111", "id": "edf84266-903e-11e6-b8fe-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1476251063.622103, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Removed supporting organization", "description": "Removed supporting organization", "step": 1, "has_operation_log_output": false, "number_of_tasks": 19, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:edf2e730-903e-11e6-95e3-7f44a98461f1%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:39:23.622103Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "remove_site_organization_membership", "job_id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "hostname_id": "test-behat-tests.pantheonsite.io"}, "queued_at": 1476251064.90615, "responses": [{"code": 201, "body": "Removed supporting organization", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "edf2e730-903e-11e6-95e3-7f44a98461f1", "workflow_id": "edf84266-903e-11e6-b8fe-bc764e11bdd3", "id": "ee467a3a-903e-11e6-b8fe-bc764e11bdd3", "key": "1476248400", "queued_time": null, "host": "localhost", "result": "succeeded", "phase": "queued", "created_at": 1476251064.134713, "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:edf2e730-903e-11e6-95e3-7f44a98461f1%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:39:24.134713Z%27,mode:quick,to:%27now%27))", "type": "remove_site_organization_membership", "build_url": null, "messages": {"2016-10-12T05:44:26.029623": {"message": "Removed supporting organization", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-team-add-no-change-mgmt.yml b/tests/fixtures/site-team-add-no-change-mgmt.yml deleted file mode 100644 index db4b0b0fa..000000000 --- a/tests/fixtures/site-team-add-no-change-mgmt.yml +++ /dev/null @@ -1,283 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1b587c44-6646-11e6-b1a5-bc764e1022a9:KA4f5RlIx2oWFq0pEYFZH' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:56 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f1338c50-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ","expires_at":1474055756,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:57 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f1cb5f80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f245bfa0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: f2811af0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f2c576f0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:59 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f32c9d30-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grantor": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - body: '{"type":"add_site_user_membership","params":{"user_email":"otheruser@pantheon.io","role":"team_member"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:03 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f367d170-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "f36d46c8-6646-11e6-8aea-bc764e11bdd3", "finished_at": 1471636563.628886, "params": {"role": "team_member", "user_email": "otheruser@pantheon.io"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636559.941896, "task_ids": ["f36d46c8-6646-11e6-8aea-bc764e11bdd3"], "trace_id": "f367d170-6646-11e6-9aa2-6117a1834a25", "type": "add_site_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471633200", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 3.6869900226593018, "created_at": 1471636559.909818, "environment": null, "total_time": 3.7190680503845215, "active_description": "Added \"otheruser@pantheon.io\" to site team", "description": "Add user to site team", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f367d170-6646-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:50:59.909818Z%27,mode:quick,to:%272016-08-19T20:01:03.628886Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "finished_at": 1471636563.588696, "fn_name": "trigger_task", "params": {"site_id": "11111111-1111-1111-1111-111111111111", "task_type": "add_site_user_membership", "role": "team_member", "user_email": "otheruser@pantheon.io"}, "queued_at": 1471636559.942215, "responses": [{"code": 200, "body": "Sent new site membership email to ''otheruser@pantheon.io''", "error_details": "", "internal_reason": ""}, {"code": 201, "body": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111"}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636559.942218, "trace_id": "f367d170-6646-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "f36d46c8-6646-11e6-8aea-bc764e11bdd3", "key": "1471633200", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471636559.914772, "allow_concurrent": false, "run_time": 3.6464779376983643, "total_time": 3.673923969268799, "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:f367d170-6646-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:50:59.914772Z%27,mode:quick,to:%272016-08-19T20:01:03.588696Z%27))", "type": "add_site_user_membership", "build_url": null, "messages": {"2016-08-19T19:56:03.652834": {"message": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111"}, "level": "INFO"}, "2016-08-19T19:56:03.652802": {"message": "Sent new site membership email to ''otheruser@pantheon.io''", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:04 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f61e3ee0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 19, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 17, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Dev", "invites_to_site": 16, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1433800858, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "verified": false, "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "email": "otheruser@pantheon.io"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-team-add.yml b/tests/fixtures/site-team-add.yml deleted file mode 100644 index 0369bcdff..000000000 --- a/tests/fixtures/site-team-add.yml +++ /dev/null @@ -1,283 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1b587c44-6646-11e6-b1a5-bc764e1022a9:KA4f5RlIx2oWFq0pEYFZH' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:56 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f1338c50-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ","expires_at":1474055756,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:57 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f1cb5f80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f245bfa0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: f2811af0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:58 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f2c576f0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:55:59 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f32c9d30-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"change_management": true, "support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grantor": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - body: '{"type":"add_site_user_membership","params":{"user_email":"otheruser@pantheon.io","role":"developer"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:03 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f367d170-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "f36d46c8-6646-11e6-8aea-bc764e11bdd3", "finished_at": 1471636563.628886, "params": {"role": "developer", "user_email": "otheruser@pantheon.io"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636559.941896, "task_ids": ["f36d46c8-6646-11e6-8aea-bc764e11bdd3"], "trace_id": "f367d170-6646-11e6-9aa2-6117a1834a25", "type": "add_site_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1471633200", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 3.6869900226593018, "created_at": 1471636559.909818, "environment": null, "total_time": 3.7190680503845215, "active_description": "Added \"otheruser@pantheon.io\" to site team", "description": "Add user to site team", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f367d170-6646-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:50:59.909818Z%27,mode:quick,to:%272016-08-19T20:01:03.628886Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "finished_at": 1471636563.588696, "fn_name": "trigger_task", "params": {"site_id": "11111111-1111-1111-1111-111111111111", "task_type": "add_site_user_membership", "role": "team_member", "user_email": "otheruser@pantheon.io"}, "queued_at": 1471636559.942215, "responses": [{"code": 200, "body": "Sent new site membership email to ''otheruser@pantheon.io''", "error_details": "", "internal_reason": ""}, {"code": 201, "body": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111"}, "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636559.942218, "trace_id": "f367d170-6646-11e6-9aa2-6117a1834a25", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "f36d46c8-6646-11e6-8aea-bc764e11bdd3", "key": "1471633200", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471636559.914772, "allow_concurrent": false, "run_time": 3.6464779376983643, "total_time": 3.673923969268799, "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:f367d170-6646-11e6-9aa2-6117a1834a25%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:50:59.914772Z%27,mode:quick,to:%272016-08-19T20:01:03.588696Z%27))", "type": "add_site_user_membership", "build_url": null, "messages": {"2016-08-19T19:56:03.652834": {"message": {"role": "team_member", "archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111"}, "level": "INFO"}, "2016-08-19T19:56:03.652802": {"message": "Sent new site membership email to ''otheruser@pantheon.io''", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:04 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f61e3ee0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "developer", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 19, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 17, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Dev", "invites_to_site": 16, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1433800858, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "verified": false, "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "email": "otheruser@pantheon.io"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 02 Sep 2016 20:13:01 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a64638b0-7149-11e6-925c-119dc2de11df - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "finished_at": 1472847178.677144, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1472847161.226717, "task_ids": ["99a1969a-7149-11e6-a7dc-bc764e1141f9", "99f09c04-7149-11e6-a7dc-bc764e1141f9", "99f26dea-7149-11e6-a7dc-bc764e1141f9", "99f2f738-7149-11e6-a7dc-bc764e1141f9", "99f378a2-7149-11e6-a7dc-bc764e1141f9", "99f4a984-7149-11e6-a7dc-bc764e1141f9", "99fd8e0a-7149-11e6-a7dc-bc764e1141f9", "9a0157b0-7149-11e6-a7dc-bc764e1141f9"], "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 17.450427055358887, "created_at": 1472847160.448446, "environment": null, "total_time": 18.228698015213013, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 8, "has_operation_log_output": false, "number_of_tasks": 8, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:40.448446Z%27,mode:quick,to:%272016-09-02T20:17:58.677144Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1432325616, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "ronan@getpantheon.com"}, "user_email": "ronan@getpantheon.com", "final_task": {"environment": "dev", "finished_at": 1472847178.602936, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "environment_id": "dev"}, "queued_at": 1472847178.587136, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "39ea8e9a-7fa7-408f-843e-ea493787fba8", "started_at": 1472847178.58714, "trace_id": "99828d40-7149-11e6-af8f-69992fe0d1e7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "9993196c-7149-11e6-a7dc-bc764e1141f9", "id": "9a0157b0-7149-11e6-a7dc-bc764e1141f9", "key": "1472846400", "queued_time": 4.0531158447265625e-06, "host": null, "phase": "finished", "created_at": 1472847161.170936, "allow_concurrent": false, "run_time": 0.01579594612121582, "total_time": 17.431999921798706, "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:99828d40-7149-11e6-af8f-69992fe0d1e7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-09-02T20:07:41.170936Z%27,mode:quick,to:%272016-09-02T20:17:58.602936Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-09-02T20:13:01.819575": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-team-list-empty.yml b/tests/fixtures/site-team-list-empty.yml deleted file mode 100644 index 5c4b39de1..000000000 --- a/tests/fixtures/site-team-list-empty.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f8ca9a30-6646-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT","expires_at":1474055769,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:09 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f951cb90-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:10 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f9c8d050-6646-11e6-8f86-018f7b210ab3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:11 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: fa0e16b0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:11 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fa4f8c80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:12 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: faaca0a0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' - diff --git a/tests/fixtures/site-team-list.yml b/tests/fixtures/site-team-list.yml deleted file mode 100644 index 06ba4c11e..000000000 --- a/tests/fixtures/site-team-list.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f8ca9a30-6646-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT","expires_at":1474055769,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:09 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f951cb90-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:10 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f9c8d050-6646-11e6-8f86-018f7b210ab3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:11 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: fa0e16b0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:11 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fa4f8c80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:12 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: faaca0a0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 19, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 17, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Dev", "invites_to_site": 16, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1433800858, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "verified": false, "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "email": "otheruser@pantheon.io"}}]' - diff --git a/tests/fixtures/site-team-remove-self.yml b/tests/fixtures/site-team-remove-self.yml deleted file mode 100644 index f33aa3499..000000000 --- a/tests/fixtures/site-team-remove-self.yml +++ /dev/null @@ -1,287 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:33 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fb154d80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111","expires_at":1474055773,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:34 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: fbbb7890-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:35 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fc38bee0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:36 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: fc7c3080-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:37 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fcc658e0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fd245760-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 19, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 17, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Dev", "invites_to_site": 16, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1433800858, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "otheruser@pantheon.io"}}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"remove_site_user_membership","params":{"user_id":"11111111-1111-1111-1111-111111111111"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fd72ec90-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "fd8a76e4-6646-11e6-b88d-bc764e1022a9", "finished_at": 2471636577.06208, "params": {"user_id": "11111111-1111-1111-1111-111111111111"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636576.951753, "task_ids": ["fd8a76e4-6646-11e6-b88d-bc764e1022a9"], "trace_id": "fd72ec90-6646-11e6-a69e-9d129c74acd7", "type": "remove_site_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f11111111-1111-1111-1111-111111111111", "key": "1471633200", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.11032700538635254, "created_at": 1471636576.871421, "environment": null, "total_time": 0.1906588077545166, "active_description": "Removed a user from site team", "description": "Remove a user from the site team", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:fd72ec90-6646-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:51:16.871421Z%27,mode:quick,to:%272016-08-19T20:01:17.062080Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "finished_at": 1471636577.03118, "fn_name": "trigger_task", "params": {"site_id": "11111111-1111-1111-1111-111111111111", "task_type": "remove_site_user_membership", "user_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471636576.95208, "responses": [{"code": 204, "body": "", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636576.952083, "trace_id": "fd72ec90-6646-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f11111111-1111-1111-1111-111111111111", "id": "fd8a76e4-6646-11e6-b88d-bc764e1022a9", "key": "1471633200", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471636576.883274, "allow_concurrent": false, "run_time": 0.07909679412841797, "total_time": 0.14790582656860352, "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:fd72ec90-6646-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:51:16.883274Z%27,mode:quick,to:%272016-08-19T20:01:17.031180Z%27))", "type": "remove_site_user_membership", "build_url": null, "messages": {"2016-08-19T19:56:17.095510": {"message": "", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/f11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/1.9.1-dev (php_version=7.2.13&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:11111111111111111111' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '404' - message: 'Not Found' - headers: - Server: nginx - Date: 'Wed, 20 Dec 2018 00:07:40 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fdd13590-903d-11e6-a658-f96e185ab7fb - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/site-team-remove.yml b/tests/fixtures/site-team-remove.yml deleted file mode 100644 index 47d99e408..000000000 --- a/tests/fixtures/site-team-remove.yml +++ /dev/null @@ -1,289 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f9123836-6646-11e6-834b-bc764e1141f9:uXraYpkcLc5SNheAt5peT' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:13 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fb154d80-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp","expires_at":1474055773,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:14 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: fbbb7890-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:14 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fc38bee0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:15 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: fc7c3080-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:15 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fcc658e0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/memberships/users?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:16 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fd245760-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "verified": false, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "key": "11111111-1111-1111-1111-111111111111", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "site_id": "11111111-1111-1111-1111-111111111111", "user": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1433793605, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 19, "verify": "d5a12ecd05e3a95dfeaf21cc71005959", "tracking_first_code_push": 1433802676, "google_adwords_account_registered_sent": 1433793462, "invites_to_user": 17, "utm_medium": "", "job_function": "null", "tracking_first_workflow_in_live": 1433800882, "tracking_first_team_invite": 1439491299, "firstname": "Dev", "invites_to_site": 16, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1433804021, "last-org-spinup": "none", "tracking_first_site_create": 1433800577, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "tracking_first_site_upgrade": 1433800858, "google_adwords_paid_for_site_sent": 1433801971, "modified": 1433793438, "maxdevsites": 2, "lead_type": "", "organization": " "}, "verified": false, "id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "email": "otheruser@pantheon.io"}}]' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: post - absolute_url: '' - json: '' - Accept: null - body: '{"type":"remove_site_user_membership","params":{"user_id":"3a1d2042-cca3-432e-94c4-12a8f2b6a950"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:17 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fd72ec90-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - body: '{"final_task_id": "fd8a76e4-6646-11e6-b88d-bc764e1022a9", "finished_at": 1471636577.06208, "params": {"user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636576.951753, "task_ids": ["fd8a76e4-6646-11e6-b88d-bc764e1022a9"], "trace_id": "fd72ec90-6646-11e6-a69e-9d129c74acd7", "type": "remove_site_user_membership", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f11111111-1111-1111-1111-111111111111", "key": "1471633200", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.11032700538635254, "created_at": 1471636576.871421, "environment": null, "total_time": 0.1906588077545166, "active_description": "Removed a user from site team", "description": "Remove a user from the site team", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:fd72ec90-6646-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:51:16.871421Z%27,mode:quick,to:%272016-08-19T20:01:17.062080Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": null, "finished_at": 1471636577.03118, "fn_name": "trigger_task", "params": {"site_id": "11111111-1111-1111-1111-111111111111", "task_type": "remove_site_user_membership", "user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950"}, "queued_at": 1471636576.95208, "responses": [{"code": 204, "body": "", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471636576.952083, "trace_id": "fd72ec90-6646-11e6-a69e-9d129c74acd7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f11111111-1111-1111-1111-111111111111", "id": "fd8a76e4-6646-11e6-b88d-bc764e1022a9", "key": "1471633200", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471636576.883274, "allow_concurrent": false, "run_time": 0.07909679412841797, "total_time": 0.14790582656860352, "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:fd72ec90-6646-11e6-a69e-9d129c74acd7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-19T19:51:16.883274Z%27,mode:quick,to:%272016-08-19T20:01:17.031180Z%27))", "type": "remove_site_user_membership", "build_url": null, "messages": {"2016-08-19T19:56:17.095510": {"message": "", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/f11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.3 (php_version=7.0.11&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 12 Oct 2016 05:37:40 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fdd13590-903d-11e6-a658-f96e185ab7fb - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"params": {}, "role": "owner", "site_id": "11111111-1111-1111-1111-1111111111111", "started_at": 1476250659.958473, "task_ids": ["fd0b4e16-903d-11e6-b783-bc764e10d7c2", "fd0c94ec-903d-11e6-b783-bc764e10d7c2", "fd0d3438-903d-11e6-b783-bc764e10d7c2", "fd180bc4-903d-11e6-b783-bc764e10d7c2", "fd1898dc-903d-11e6-b783-bc764e10d7c2", "fd378e9a-903d-11e6-b783-bc764e10d7c2", "fd38eb50-903d-11e6-b783-bc764e10d7c2", "fd3970c0-903d-11e6-b783-bc764e10d7c2", "fd3a06a2-903d-11e6-b783-bc764e10d7c2", "fd3a85be-903d-11e6-b783-bc764e10d7c2", "fd4c7576-903d-11e6-b783-bc764e10d7c2", "fd4dd0d8-903d-11e6-b783-bc764e10d7c2", "fd4f0ef8-903d-11e6-b783-bc764e10d7c2", "fd4f7b18-903d-11e6-b783-bc764e10d7c2", "fd5022fc-903d-11e6-b783-bc764e10d7c2", "fd509bb0-903d-11e6-b783-bc764e10d7c2"], "trace_id": "fcdd86c0-903d-11e6-a658-f96e185ab7fb", "type": "converge_site", "user_id": "11111111-1111-1111-1111-111111111111", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "fd0b4e16-903d-11e6-b783-bc764e10d7c2", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1476250659.144888, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Removed a user from site team", "description": "Bring environments to desired configuration state", "step": 1, "has_operation_log_output": false, "number_of_tasks": 16, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:fcdd86c0-903d-11e6-a658-f96e185ab7fb%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:32:39.144888Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "fd0b4e16-903d-11e6-b783-bc764e10d7c2", "hostname_id": "test-behat-tests.pantheonsite.io"}, "queued_at": 1476250659.958959, "responses": [{"code": 201, "body": "Successfully queued converge_hostname", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "fcdd86c0-903d-11e6-a658-f96e185ab7fb", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "fd0b4e16-903d-11e6-b783-bc764e10d7c2", "key": "1476248400", "queued_time": null, "host": "localhost", "result": null, "phase": "queued", "created_at": 1476250659.416015, "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:fcdd86c0-903d-11e6-a658-f96e185ab7fb%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-12T05:32:39.416015Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {"2016-10-12T05:37:40.751997": {"message": "Successfully queued converge_hostname", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-team-role.yml b/tests/fixtures/site-team-role.yml deleted file mode 100644 index 8a75be203..000000000 --- a/tests/fixtures/site-team-role.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f18ec78c-6646-11e6-941c-bc764e11bdd3:r8RL5J3zDhC1WVtGoufxQ' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:05 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f68e3ec0-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS","expires_at":1474055765,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:06 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f7098940-6646-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:06 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f7912fd0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:07 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: f7c81e50-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:07 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f8121fa0-6646-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/features' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:f6ca3fe2-6646-11e6-8703-bc764e10d7c2:0CvVLAMOnXtSbKGUcGksS' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:08 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f86ff710-6646-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"support_plan": [{"grantee": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "user"}, "resource": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grantor": {"id": "11111111-1111-1111-1111-111111111111", "problem_space": "site"}, "grant": {"id": "support_plan", "support_plan": {"ticket_priority": {"priority": "P3", "sla": null}, "enable_oncall": false, "id": "regular_support"}}}]}' - diff --git a/tests/fixtures/site-upstream-cache-clear.yml b/tests/fixtures/site-upstream-cache-clear.yml deleted file mode 100644 index dc2ca8f9f..000000000 --- a/tests/fixtures/site-upstream-cache-clear.yml +++ /dev/null @@ -1,189 +0,0 @@ - -- - 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/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:25:52 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 3898e350-8f32-11e7-b926-49828d3a221b - 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:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp","expires_at":1506702352,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:25:53 GMT' - Content-Type: application/json - Content-Length: '3585' - Connection: keep-alive - X-Pantheon-Trace-Id: 3931c7f0-8f32-11e7-aad7-c959201480f7 - 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: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 10, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"global-cdn": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1492930415, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Self-Serve Upstreams", "default": false, "enabled": true, "visible": false, "optional": false, "id": "self-serve_upstreams"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:25:54 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 3a1dae90-8f32-11e7-8288-d550e6d46d72 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:25:55 GMT' - Content-Type: application/json - Content-Length: '3664' - Connection: keep-alive - X-Pantheon-Trace-Id: 3a5a1b50-8f32-11e7-b926-49828d3a221b - 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": 1495660180, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "current_num_domains": 0, "drush_version": 8, "framework": "drupal", "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "holder_type": "organization", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}, "name": "behat-tests", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "php_version": "55", "preferred_zone": "us-central1", "service_level": "free", "service_level_updated_at": 1495660180, "upstream": {"repository_branch": "master", "machine_name": "protected-upstream", "product_id": "c9f1311f-4cae-41ca-8276-cca230c25f37", "url": "https://github.com/ronan/drops-7.git", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "branch": "master", "repository_url": "https://github.com/ronan/drops-7.git", "type": "custom", "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, "label": "Protected Upstream Site", "id": "11111111-1111-1111-1111-111111111111", "holder": {"custom_upstreams": true, "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "maxdevsites": "10", "name": "The Upstreamers", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "the-upstreamers", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "min_backups": 0, "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "secure_runtime_access": false, "label": "Protected Upstream Site", "allow_indexserver": false, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "failover_appserver": 0, "pingdom": 0, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "current_num_domains": 0, "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "drupal", "max_total_domains": 0, "upstream": {"url": "https://github.com/ronan/drops-7.git", "product_id": "c9f1311f-4cae-41ca-8276-cca230c25f37", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "us-central1", "pingdom_chance": 0, "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "name": "protected-upstream-site", "created": 1495660180, "max_backups": 0, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "pingdom_manually_enabled": false, "service_level_updated_at": 1495660180, "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}}, "base_domain": null, "attributes": {"hostname_limit": true, "label": "Protected Upstream Site", "m3_ui": true}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp' - Accept: null - body: '{"type":"clear_code_cache","params":{}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:31:11 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f72540c0-8f32-11e7-aad7-c959201480f7 - 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: '{"final_task_id": "f747b0f6-8f32-11e7-98c7-bc764e10d7c2", "finished_at": 1504283471.889864, "params": {}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1504283471.82989, "task_ids": ["f747b0f6-8f32-11e7-98c7-bc764e10d7c2"], "trace_id": "f72540c0-8f32-11e7-aad7-c959201480f7", "type": "clear_code_cache", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "1504281600", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.059973955154418945, "created_at": 1504283471.742104, "environment": null, "total_time": 0.14775991439819336, "active_description": "Cleared Code Cache", "description": "Clear Code Cache", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f72540c0-8f32-11e7-aad7-c959201480f7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-09-01T16:26:11.742104Z%27,mode:quick,to:%272017-09-01T16:36:11.889864Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "tesladethray@gmail.com", "final_task": {"environment": "dev", "finished_at": 1504283471.854221, "fn_name": "trigger_task", "initialized_at": 1504283471.830216, "params": {"task_type": "clear_code_cache", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1504283471.834922, "responses": [{"code": 200, "body": "Site 11111111-1111-1111-1111-111111111111 code cache was cleared.", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1504283471.834925, "trace_id": "f72540c0-8f32-11e7-aad7-c959201480f7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "f747b0f6-8f32-11e7-98c7-bc764e10d7c2", "key": "1504281600", "queued_time": 2.86102294921875e-06, "host": null, "phase": "finished", "created_at": 1504283471.789695, "allow_concurrent": false, "run_time": 0.01929616928100586, "total_time": 0.06452608108520508, "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:f72540c0-8f32-11e7-aad7-c959201480f7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-09-01T16:26:11.789695Z%27,mode:quick,to:%272017-09-01T16:36:11.854221Z%27))", "type": "clear_code_cache", "build_url": null, "messages": {"2017-09-01T16:31:11.923706": {"message": "Site 11111111-1111-1111-1111-111111111111 code cache was cleared.", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.5.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:38cfba7e-8f32-11e7-962e-bc764e11bdd3:gUbEcUD3r5fTCCZNV7xgp' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 01 Sep 2017 16:31:12 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f78477c0-8f32-11e7-8343-ff77428ce12b - 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: '{"final_task_id": "f747b0f6-8f32-11e7-98c7-bc764e10d7c2", "finished_at": 1504283471.889864, "params": {}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1504283471.82989, "task_ids": ["f747b0f6-8f32-11e7-98c7-bc764e10d7c2"], "trace_id": "f72540c0-8f32-11e7-aad7-c959201480f7", "type": "clear_code_cache", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.059973955154418945, "created_at": 1504283471.742104, "environment": null, "total_time": 0.14775991439819336, "active_description": "Cleared Code Cache", "description": "Clear Code Cache", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f72540c0-8f32-11e7-aad7-c959201480f7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-09-01T16:26:11.742104Z%27,mode:quick,to:%272017-09-01T16:36:11.889864Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "tesladethray@gmail.com", "final_task": {"environment": "dev", "finished_at": 1504283471.854221, "fn_name": "trigger_task", "initialized_at": 1504283471.830216, "params": {"task_type": "clear_code_cache", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1504283471.834922, "responses": [{"code": 200, "body": "Site 11111111-1111-1111-1111-111111111111 code cache was cleared.", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1504283471.834925, "trace_id": "f72540c0-8f32-11e7-aad7-c959201480f7", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "f747b0f6-8f32-11e7-98c7-bc764e10d7c2", "key": "1504281600", "queued_time": 2.86102294921875e-06, "host": null, "phase": "finished", "created_at": 1504283471.789695, "allow_concurrent": false, "run_time": 0.01929616928100586, "total_time": 0.06452608108520508, "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:f72540c0-8f32-11e7-aad7-c959201480f7%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-09-01T16:26:11.789695Z%27,mode:quick,to:%272017-09-01T16:36:11.854221Z%27))", "type": "clear_code_cache", "build_url": null, "messages": {"2017-09-01T16:31:12.331094": {"message": "Site 11111111-1111-1111-1111-111111111111 code cache was cleared.", "level": "INFO"}}}}' diff --git a/tests/fixtures/site-upstream-set-unauthorized.yml b/tests/fixtures/site-upstream-set-unauthorized.yml deleted file mode 100644 index 5fdd03486..000000000 --- a/tests/fixtures/site-upstream-set-unauthorized.yml +++ /dev/null @@ -1,157 +0,0 @@ - -- - 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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:57 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 983ae5d0-4bb5-11e7-a578-c349578aaad1 - 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:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U","expires_at":1499282097,"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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 99147cf0-4bb5-11e7-ba8b-1deb87f69a85 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:59 GMT' - Content-Type: application/json - Content-Length: '3172' - Connection: keep-alive - X-Pantheon-Trace-Id: 9968de80-4bb5-11e7-ba8b-1deb87f69a85 - 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": 1495660180, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal", "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "holder_type": "organization", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}, "name": "behat-tests", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "label": "Protected Upstream Site", "id": "11111111-1111-1111-1111-111111111111", "holder": {"instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "maxdevsites": "10", "name": "The Upstreamers", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "the-upstreamers", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "label": "Protected Upstream Site", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "drupal", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "name": "behat-tests", "created": 1495660180, "max_backups": 0, "holder_type": "organization", "number_allow_domains": 0, "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Protected Upstream Site"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/authorizations' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.6.2-dev (php_version=7.1.11&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 12 Dec 2017 05:31:13 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: aac24500-defd-11e7-8ab4-5f1f81eb2a0e - 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": "dev", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "dev", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "dev", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "dev", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"dev\" setting"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"dev\" environment"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "dev", "is_user_authorized": true, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "dev", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "dev", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"dev\" files to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"dev\" setting"}, {"environment": "dev", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "dev", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "dev", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"dev\""}, {"environment": "test", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "test", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "test", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "test", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"test\" setting"}, {"environment": "test", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"test\" environment"}, {"environment": "test", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "test", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "test", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "test", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"test\" files to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"test\" setting"}, {"environment": "test", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "test", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "test", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"test\""}, {"environment": "live", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "live", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "live", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "live", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"live\" setting"}, {"environment": "live", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"live\" environment"}, {"environment": "live", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "live", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "live", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "live", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"live\" files to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"live\" setting"}, {"environment": "live", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "live", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "live", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"live\""}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "change_site_service_level", "description": "Change site plan"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_ownership", "description": "Transfer ownership to a user or an organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev", "description": "enable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "reenable_site", "description": "Whitelist the site from platform abuse checks"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_https", "description": "Converge HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev_for_site", "description": "Enable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "invite_to_pay", "description": "Invite a new user to pay for the site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_secure_runtime_access_for_site", "description": "Disable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "associate_site_instrument", "description": "Associate a payment method and a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "promote_site_user_to_owner", "description": "Promote user to owner"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_binding_after_migration", "description": "Converge binding after migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_zone", "description": "Bring environments to desired zone"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_user_membership", "description": "Remove a user from the site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "verify_migration_state", "description": "Verify migration state for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_organization_membership", "description": "Remove supporting organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_status", "description": "Update site status"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_cloud_development_environment", "description": "Delete a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_site", "description": "Disable site due to platform abuse"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_binding", "description": "Delete binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_user_membership", "description": "Add user to site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "set_user_in_charge", "description": "Set user in charge"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "check_for_spam", "description": "Converge site metadata"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management_for_site", "description": "Disable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "migrate_binding_for_site", "description": "Migrate binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_new_relic_for_site", "description": "Enable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_organization_membership", "description": "Add supporting organization to site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_binding_properties", "description": "Cleanup binding properties for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management", "description": "disable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "upgrade_to_global_edge_https", "description": "Start upgrade to Global CDN"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "start_migration", "description": "Start migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_organization_membership", "description": "Change supporting organization role"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "complete_migration", "description": "Complete migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev", "description": "disable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "deploy_product", "description": "Deploy a CMS (Drupal or WordPress)"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disassociate_site_instrument", "description": "Remove a payment method from a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_secure_runtime_access_for_site", "description": "Enable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_new_relic_for_site", "description": "Disable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_site", "description": "Bring environments to desired configuration state"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "switch_upstream", "description": "Switch Upstream"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_migration_method", "description": "Update migration method"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev_for_site", "description": "Disable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management_for_site", "description": "Enable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_setting", "description": "Update site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site_setting", "description": "Delete site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "downgrade_from_global_edge_https", "description": "Revert to legacy HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "create_cloud_development_environment", "description": "Create a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_environment_branch", "description": "Delete a Multidev environment branch"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "clear_code_cache", "description": "Clear Code Cache"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "unfreeze_site", "description": "unfreeze_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "configure_secure_runtime_access_for_site", "description": "configure_secure_runtime_access_for_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "freeze_site", "description": "Freeze site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_own_site_user_membership", "description": "Remove yourself from the site team."}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "site_converge_binding", "description": "Converge resource on environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_site_payment_to_organization", "description": "Transfer site billing to organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management", "description": "enable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_user_membership", "description": "Change a user role on the site team"}]' diff --git a/tests/fixtures/site-upstream-set-upstream-dne.yml b/tests/fixtures/site-upstream-set-upstream-dne.yml deleted file mode 100644 index 513fc3988..000000000 --- a/tests/fixtures/site-upstream-set-upstream-dne.yml +++ /dev/null @@ -1,188 +0,0 @@ - -- - 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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:16:57 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: dfaab580-4bb5-11e7-bcc6-dd7a85304493 - 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:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr","expires_at":1499282217,"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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:16:58 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: e08ab540-4bb5-11e7-9464-39c5b3968ac2 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:16:59 GMT' - Content-Type: application/json - Content-Length: '3172' - Connection: keep-alive - X-Pantheon-Trace-Id: e0b9db90-4bb5-11e7-b471-83db5df81a7a - 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": 1495660180, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal", "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "holder_type": "organization", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}, "name": "behat-tests", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "label": "Protected Upstream Site", "id": "11111111-1111-1111-1111-111111111111", "holder": {"instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "maxdevsites": "10", "name": "The Upstreamers", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "the-upstreamers", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "label": "Protected Upstream Site", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "drupal", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "name": "behat-tests", "created": 1495660180, "max_backups": 0, "holder_type": "organization", "number_allow_domains": 0, "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Protected Upstream Site"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '[{"machine_name": "advostarter-d8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Advostarter D8", "organization_id": "2d9c0d71-3bc6-4f3a-8517-d4de231ed69a", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "cbdeadf3-669f-4848-94f5-c2354f256de8"}, {"machine_name": "openatrium2", "description": "[Atrium](http://openatrium.com/) is an adaptable platform that allows you to confidently engage with your colleagues through convenient collaboration.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openatrium-icon.png", "label": "Atrium", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "31bc4254-be20-4e8d-afe6-6c585e58435a"}, {"machine_name": "backdrop", "description": "Backdrop is a fully-featured content management system that allows non-technical users to manage a wide-variety of content. It can be used to create blogs, forums, image galleries, social networks, intranets, and more.", "connection_mode_default": "git", "icon_url": "https://live-pantheon-assets.gotpantheon.com/files/product_icons/backdrop.png", "label": "Backdrop", "organization_id": "36b51e56-4969-4deb-a0e2-093bcc66862c", "framework": "backdrop", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "bf703821-4c18-45a1-88b8-3d9ec302273d"}, {"machine_name": "cuexpress", "description": "The Express install profile designed and supported by Developers to allow Site Owners to create great looking websites that meet a university''s accessibility, security, and branding policies. Site Owner are not Site Builders. Express users are not expected (or allowed) to create content types, fields, or views. While limiting, this approach makes it possible to maintain a large number of Express sites with a relatively small staff.", "connection_mode_default": "sftp", "icon_url": "https://www.cu.edu/sites/all/themes/cu/logo_small.png", "label": "CU Express 3", "organization_id": "63a252dd-5802-4e3e-ad99-02ddee681f34", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "6413825e-7c23-3549-bbf1-c797251bf6e9"}, {"machine_name": "civicrm_starterkit", "description": "[CiviCRM](http://civicrm.org/) is a web-based, open source, CRM geared toward meeting the needs of non-profit and civic-sector organizations. The starter kit integrates CiviCRM with Drupal.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/civicrm-icon.png", "label": "CiviCRM Starter Kit", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "3b754bc2-48f8-4388-b5b5-2631098d03de"}, {"machine_name": "kickstart", "description": "A software distribution for sites of any size that provides all the power and flexibility of Drupal Commerce, combined with components that accelerate creation and launch of an online store.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/commerce-kickstart-icon.png", "label": "Commerce Kickstart", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8a662dde-53d6-4fdb-8eac-eea9f5848d00"}, {"machine_name": "dkan", "description": "DKAN is a Drupal-based open data platform with a full suite of cataloging, publishing and visualization features that allows governments, nonprofits and universities to easily publish data to the public.", "connection_mode_default": "git", "icon_url": "https://cloud.githubusercontent.com/assets/512243/4800565/8f59086c-5e27-11e4-9f4f-5df0a5731282.png", "label": "DKAN", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "d7370d7e-46fb-4b10-b79f-942b5abf51de"}, {"machine_name": "demo-upstream", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Demo Upstream", "organization_id": "e106ce89-29d1-4c3f-962c-39d2ce73c97f", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "b1057113-272a-4509-b0b0-1362ec31d71c"}, {"machine_name": "drops-8-composer", "description": "Drops-8, managed by Composer", "connection_mode_default": "sftp", "icon_url": "https://getcomposer.org/img/logo-composer-transparent.png", "label": "Drops 8 Composer", "organization_id": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "35b0e365-a191-4c70-adbe-9d02d01343f3"}, {"machine_name": "drupal6", "description": "Drupal 6 sites run on Pantheon, but Drupal 6 reached end of life on February 24th, 2016.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal6-icon.jpg", "label": "Drupal 6", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, {"machine_name": "drupal7", "description": "The most widely installed release of the powerful open source content management platform.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, {"machine_name": "drupal8", "description": "Launch, manage, and scale ambitious digital experiences\u2014with the flexibility to build great websites or push beyond the browser. Proudly open source.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal8-icon.png", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, {"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "easteregg-kit", "description": "Easterseals Main Distribution - Developed and Managed by Molly Duggan Associates for exclusive use on Easterseals.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20Stacked%20CMYK%20300.png", "label": "EasterEgg Kit", "organization_id": "c27b42df-c2cb-c2ae-d979-ddc254a8bc44", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6"}, {"machine_name": "drupal-patterns", "description": "This is the Elephant Ventures profile distribution called Drupal Patterns.\r\nIt''s a responsive theme built for marketing websites.", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/ev-logo-square-sm.png", "label": "Elephant Ventures Drupal Patterns", "organization_id": "9813aeef-d889-4afc-9dfd-5a7433a853c9", "framework": "drupal", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "0fce9338-bd6f-4b87-a489-e9928a027696"}, {"machine_name": "empty-7", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Empty Drupal 7", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "f575e77a-ff49-4bab-a53c-dbf8f59247bc"}, {"machine_name": "empty", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/sites/all/modules/drupalorg/drupalorg/images/d8.svg", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "core", "is_organization_association_forced": 0, "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, {"machine_name": "empty-wordpress", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "Empty WordPress", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f"}, {"machine_name": "fcpsschools", "description": "Fairfax County Public Schools install profile", "connection_mode_default": "sftp", "icon_url": "https://forumone.com/apple-touch-icon-76x76.png", "label": "Fairfax County Public Schools", "organization_id": "a7e4d66b-ab92-481b-ab77-626b8562544e", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 0, "id": "c28628b2-6b8f-4962-9838-69295c3fff68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "openoutreach", "description": "[Open Outreach](http://drupal.org/project/openoutreach) is a Drupal distribution written to provide grassroots, activist, and nonprofit groups with the web tools they need for effective public engagement.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openoutreach-icon.png", "label": "Open Outreach", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "4c17f505-05d0-4b79-b38a-0bc548405a10"}, {"machine_name": "openrestaurant", "description": "The [Open Restaurant distribution](http://open.restaurant/) has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog, events management and a responsive theme.\r\n", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/styles/grid-3/public/project-images/open-restaurant-logo.png", "label": "Open Restaurant", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "6eb1ad36-afef-46d7-90d1-3a1bd4296863"}, {"machine_name": "openaid", "description": "[OpenAid](https://openaiddistro.org) is a turnkey website platform designed to help cause-driven organizations create cost-effective program-focused websites quickly.\r\n", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/files/product_icons/open-aid.png", "label": "OpenAid", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "2adff196-4672-44c9-af2a-4590963b90d8"}, {"machine_name": "openideal", "description": "[OpenideaL](http://www.openidealapp.com/) is an idea management system, for both public and commercial sectors. It is a powerful tool to analyze public opinion regarding products/services and identify trends.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openideal-icon.png", "label": "OpenIdeaL", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "86112161-4cb2-410f-8bb1-8a1fb4f56dae"}, {"machine_name": "openpublic", "description": "[OpenPublic](http://openpublicapp.com/) provides a content management system specially designed for open government goals, without compromising accessibility, security or usability.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublic-icon.png", "label": "OpenPublic", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "b459145b-8771-4597-8b84-684a3d93dce0"}, {"machine_name": "openpublish", "description": "[OpenPublish](http://openpublishapp.com/) is a flexible and powerful CMS designed for the online news industry. It is built for flexibility, customization, and extension to help publishers focus on their content.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublish-icon.png", "label": "OpenPublish", "organization_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908"}, {"machine_name": "panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is a Panels powered distribution designed to be a base framework upon which to build other Drupal distributions, but will also work for general site building.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8ad1efe0-0231-42ae-9520-c96241495b82"}, {"machine_name": "try_panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is an enhanced version of Drupal with drag & drop page building tools, responsive layouts, a WYSIWYG, and [more.](\u201dhttp://drupal.org/node/1679838\u201d) See how awesome Drupal can be, right out of the box.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "plato_tipico", "description": "This is a a preconfigured distro with multi-language support for English & Spanish. Already comes with most of the necessary modules which will save you lots of time and research.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/plato-tipico-icon.png", "label": "Plato T\u00edpico", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "216f85b2-620b-470d-9597-f64ade76dc9a"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "pushtape", "description": "Build better music websites with [Pushtape](http://drupal.org/project/pushtape), a Drupal distribution for musicians. Manage your music discography, create news updates, upload photos, post upcoming shows and more.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/pushtape-icon.png", "label": "Pushtape", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "f141b5e0-a614-4294-a86c-6c24df9bf6c5"}, {"machine_name": "redhen_raiser", "description": "RedHen Raiser is a Drupal distribution for quickly launching peer-to-peer fundraising campaigns (also referred to as crowd fundraising, team fundraising, or viral fundraising campaigns). Individual and team fundraisers join campaigns with their own customizable pages and individual goals, all contributing to the overall campaign. RedHen Raiser features easy campaign creation for teams or individuals, goal progress widgets, campaign updates, automated start and end dates, single page donation forms, and it''s Commerce ready, just add your payment method and go!", "connection_mode_default": "sftp", "icon_url": "https://assets.getpantheon.com/files/product_icons/redhen-logo.png", "label": "RedHen Raiser", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "10d6937e-1dd2-4490-9950-11867ba43597"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}, {"machine_name": "rtupstream", "description": "This a test upstream created by Ruby", "connection_mode_default": "sftp", "icon_url": "http://screencast.com/t/WdHX3CRFAc", "label": "Ruby Test Upstream", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "framework": "wordpress", "is_public_spinup_allowed": 0, "type": "product", "is_organization_association_forced": 0, "id": "10d2f3a5-728a-460f-afa9-dbaee10eef3b"}, {"machine_name": "rutgers_wp_custom", "description": "Rutgers University WordPress Custom Distribution for School Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers School Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "e44da442-2b1e-639a-f790-edf7cb26c9a0"}, {"machine_name": "ruwwpucd", "description": "Rutgers University WordPress Custom Distribution for Unit/Organization Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers Unit/Department Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "64408272-2d4b-614a-753b-334a2baf4263"}, {"machine_name": "sprowt-09022016", "description": "A Drupal 7 upstream for Pantheon", "connection_mode_default": "git", "icon_url": "http://www.coalmarch.com/sites/default/files/sprowt-logo.png", "label": "Sprowt", "organization_id": "08b99cd5-81a3-4b67-acc1-d5dba50390f8", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "158e2876-13a4-427f-96cf-d29a3daa538b"}, {"machine_name": "static_html", "description": "This is an upstream for Pantheon that is used for static HTML/JS/CSS sites ", "connection_mode_default": "git", "icon_url": "https://image.freepik.com/free-icon/html-5-logo_318-79489.png", "label": "Static HTML", "organization_id": "f057733a-d6a0-4985-81fd-1174cd5da49b", "framework": "unknown", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "de858279-cb87-4664-825c-fcb4c2928717"}, {"machine_name": "test-ps-digital", "description": "Test Custom Upstream created during the Jump Start", "connection_mode_default": "git", "icon_url": null, "label": "Test PS Digital", "organization_id": "977a8c1f-b420-499f-a675-af5dfadd55a6", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "8ed60b88-e3bb-4981-9701-777ee9e40435"}, {"machine_name": "wordpress", "description": "Open source software with powerful features, and the freedom to build anything you want.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "WordPress", "organization_id": "", "framework": "wordpress", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, {"machine_name": "wordpress-class", "description": "Wordpress 2017 for the Exchange Students of Shasta College", "connection_mode_default": "sftp", "icon_url": null, "label": "Wordpress Class", "organization_id": "8badbb50-093d-41db-8dd1-6aa78f9a6113", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "11111111-1111-1111-1111-111111111111"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/authorizations' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.6.2-dev (php_version=7.1.11&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:dff7dc02-4bb5-11e7-b249-bc764e10b0ce:ioSO5zQNrGFgZUq7XnITr' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 12 Dec 2017 05:31:13 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: aac24500-defd-11e7-8ab4-5f1f81eb2a0e - 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": "dev", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "dev", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "dev", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "dev", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"dev\" setting"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"dev\" environment"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "dev", "is_user_authorized": true, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "dev", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "dev", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"dev\" files to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"dev\" setting"}, {"environment": "dev", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "dev", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "dev", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"dev\""}, {"environment": "test", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "test", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "test", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "test", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"test\" setting"}, {"environment": "test", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"test\" environment"}, {"environment": "test", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "test", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "test", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "test", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"test\" files to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"test\" setting"}, {"environment": "test", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "test", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "test", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"test\""}, {"environment": "live", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "live", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "live", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "live", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"live\" setting"}, {"environment": "live", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"live\" environment"}, {"environment": "live", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "live", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "live", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "live", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"live\" files to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"live\" setting"}, {"environment": "live", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "live", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "live", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"live\""}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "change_site_service_level", "description": "Change site plan"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_ownership", "description": "Transfer ownership to a user or an organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev", "description": "enable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "reenable_site", "description": "Whitelist the site from platform abuse checks"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_https", "description": "Converge HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev_for_site", "description": "Enable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "invite_to_pay", "description": "Invite a new user to pay for the site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_secure_runtime_access_for_site", "description": "Disable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "associate_site_instrument", "description": "Associate a payment method and a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "promote_site_user_to_owner", "description": "Promote user to owner"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_binding_after_migration", "description": "Converge binding after migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_zone", "description": "Bring environments to desired zone"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_user_membership", "description": "Remove a user from the site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "verify_migration_state", "description": "Verify migration state for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_organization_membership", "description": "Remove supporting organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_status", "description": "Update site status"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_cloud_development_environment", "description": "Delete a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_site", "description": "Disable site due to platform abuse"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_binding", "description": "Delete binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_user_membership", "description": "Add user to site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "set_user_in_charge", "description": "Set user in charge"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "check_for_spam", "description": "Converge site metadata"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management_for_site", "description": "Disable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "migrate_binding_for_site", "description": "Migrate binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_new_relic_for_site", "description": "Enable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_organization_membership", "description": "Add supporting organization to site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_binding_properties", "description": "Cleanup binding properties for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management", "description": "disable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "upgrade_to_global_edge_https", "description": "Start upgrade to Global CDN"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "start_migration", "description": "Start migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_organization_membership", "description": "Change supporting organization role"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "complete_migration", "description": "Complete migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev", "description": "disable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "deploy_product", "description": "Deploy a CMS (Drupal or WordPress)"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disassociate_site_instrument", "description": "Remove a payment method from a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_secure_runtime_access_for_site", "description": "Enable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_new_relic_for_site", "description": "Disable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_site", "description": "Bring environments to desired configuration state"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "switch_upstream", "description": "Switch Upstream"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_migration_method", "description": "Update migration method"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev_for_site", "description": "Disable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management_for_site", "description": "Enable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_setting", "description": "Update site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site_setting", "description": "Delete site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "downgrade_from_global_edge_https", "description": "Revert to legacy HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "create_cloud_development_environment", "description": "Create a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_environment_branch", "description": "Delete a Multidev environment branch"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "clear_code_cache", "description": "Clear Code Cache"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "unfreeze_site", "description": "unfreeze_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "configure_secure_runtime_access_for_site", "description": "configure_secure_runtime_access_for_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "freeze_site", "description": "Freeze site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_own_site_user_membership", "description": "Remove yourself from the site team."}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "site_converge_binding", "description": "Converge resource on environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_site_payment_to_organization", "description": "Transfer site billing to organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management", "description": "enable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_user_membership", "description": "Change a user role on the site team"}]' diff --git a/tests/fixtures/site-upstream-set-wrong-framework.yml b/tests/fixtures/site-upstream-set-wrong-framework.yml deleted file mode 100644 index 3979a7fb8..000000000 --- a/tests/fixtures/site-upstream-set-wrong-framework.yml +++ /dev/null @@ -1,251 +0,0 @@ - -- - 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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:17:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f00395a0-4bb5-11e7-9efd-d9e99cba4b9b - 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:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R","expires_at":1499282246,"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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:17:27 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f17ca110-4bb5-11e7-ba8b-1deb87f69a85 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:17:27 GMT' - Content-Type: application/json - Content-Length: '3172' - Connection: keep-alive - X-Pantheon-Trace-Id: f1ac8ab0-4bb5-11e7-9efd-d9e99cba4b9b - 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": 1495660180, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal", "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "holder_type": "organization", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}, "name": "behat-tests", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "label": "Protected Upstream Site", "id": "11111111-1111-1111-1111-111111111111", "holder": {"instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "maxdevsites": "10", "name": "The Upstreamers", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "the-upstreamers", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "label": "Protected Upstream Site", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "drupal", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "name": "behat-tests", "created": 1495660180, "max_backups": 0, "holder_type": "organization", "number_allow_domains": 0, "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Protected Upstream Site"}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - body: '{"type":"switch_upstream","params":{"upstream_id":"e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:17:29 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493 - 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: '{"final_task_id": "f30ab440-4bb5-11e7-9978-bc764e10b0ce", "finished_at": 1496863049.776203, "params": {"upstream_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "result": "aborted", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496863049.716589, "task_ids": ["f30ab440-4bb5-11e7-9978-bc764e10b0ce"], "trace_id": "f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493", "type": "switch_upstream", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f305b148-4bb5-11e7-9978-bc764e10b0ce", "key": "1496862000", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.059613943099975586, "created_at": 1496863049.64898, "environment": null, "total_time": 0.12722301483154297, "active_description": "Switched Upstream", "description": "Switch Upstream", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:12:29.648980Z%27,mode:quick,to:%272017-06-07T19:22:29.776203Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1433793438, "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": "dev", "finished_at": 1496863049.740086, "fn_name": "trigger_task", "has_error": true, "params": {"upstream_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "task_type": "switch_upstream", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1496863049.717019, "responses": [{"code": 400, "body": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "error_details": "", "internal_reason": ""}], "result": "aborted", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496863049.717023, "trace_id": "f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f305b148-4bb5-11e7-9978-bc764e10b0ce", "id": "f30ab440-4bb5-11e7-9978-bc764e10b0ce", "key": "1496862000", "queued_time": 3.814697265625e-06, "host": null, "phase": "finished", "created_at": 1496863049.681824, "allow_concurrent": false, "run_time": 0.023063182830810547, "total_time": 0.05826210975646973, "reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "error_details": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "internal_reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:12:29.681824Z%27,mode:quick,to:%272017-06-07T19:22:29.740086Z%27))", "type": "switch_upstream", "build_url": null, "messages": {"2017-06-07T19:17:29.800919": {"message": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "level": "ERROR"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/f305b148-4bb5-11e7-9978-bc764e10b0ce' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:17:30 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: f3474ef0-4bb5-11e7-bcc6-dd7a85304493 - 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: '{"final_task_id": "f30ab440-4bb5-11e7-9978-bc764e10b0ce", "finished_at": 1496863049.776203, "params": {"upstream_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "result": "aborted", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496863049.716589, "task_ids": ["f30ab440-4bb5-11e7-9978-bc764e10b0ce"], "trace_id": "f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493", "type": "switch_upstream", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f305b148-4bb5-11e7-9978-bc764e10b0ce", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.059613943099975586, "created_at": 1496863049.64898, "environment": null, "total_time": 0.12722301483154297, "active_description": "Switched Upstream", "description": "Switch Upstream", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:12:29.648980Z%27,mode:quick,to:%272017-06-07T19:22:29.776203Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1433793438, "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": "dev", "finished_at": 1496863049.740086, "fn_name": "trigger_task", "has_error": true, "params": {"upstream_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "task_type": "switch_upstream", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1496863049.717019, "responses": [{"code": 400, "body": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "error_details": "", "internal_reason": ""}], "result": "aborted", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496863049.717023, "trace_id": "f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f305b148-4bb5-11e7-9978-bc764e10b0ce", "id": "f30ab440-4bb5-11e7-9978-bc764e10b0ce", "key": "1496862000", "queued_time": 3.814697265625e-06, "host": null, "phase": "finished", "created_at": 1496863049.681824, "allow_concurrent": false, "run_time": 0.023063182830810547, "total_time": 0.05826210975646973, "reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "error_details": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "internal_reason": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f2e2c0c0-4bb5-11e7-bcc6-dd7a85304493%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:12:29.681824Z%27,mode:quick,to:%272017-06-07T19:22:29.740086Z%27))", "type": "switch_upstream", "build_url": null, "messages": {"2017-06-07T19:17:30.204175": {"message": "The site cannot be switched to the ''WordPress'' upstream because the upstream framework (wordpress) does not match the site framework. (drupal)", "level": "ERROR"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '[{"machine_name": "advostarter-d8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Advostarter D8", "organization_id": "2d9c0d71-3bc6-4f3a-8517-d4de231ed69a", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "cbdeadf3-669f-4848-94f5-c2354f256de8"}, {"machine_name": "openatrium2", "description": "[Atrium](http://openatrium.com/) is an adaptable platform that allows you to confidently engage with your colleagues through convenient collaboration.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openatrium-icon.png", "label": "Atrium", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "31bc4254-be20-4e8d-afe6-6c585e58435a"}, {"machine_name": "backdrop", "description": "Backdrop is a fully-featured content management system that allows non-technical users to manage a wide-variety of content. It can be used to create blogs, forums, image galleries, social networks, intranets, and more.", "connection_mode_default": "git", "icon_url": "https://live-pantheon-assets.gotpantheon.com/files/product_icons/backdrop.png", "label": "Backdrop", "organization_id": "36b51e56-4969-4deb-a0e2-093bcc66862c", "framework": "backdrop", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "bf703821-4c18-45a1-88b8-3d9ec302273d"}, {"machine_name": "cuexpress", "description": "The Express install profile designed and supported by Developers to allow Site Owners to create great looking websites that meet a university''s accessibility, security, and branding policies. Site Owner are not Site Builders. Express users are not expected (or allowed) to create content types, fields, or views. While limiting, this approach makes it possible to maintain a large number of Express sites with a relatively small staff.", "connection_mode_default": "sftp", "icon_url": "https://www.cu.edu/sites/all/themes/cu/logo_small.png", "label": "CU Express 3", "organization_id": "63a252dd-5802-4e3e-ad99-02ddee681f34", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "6413825e-7c23-3549-bbf1-c797251bf6e9"}, {"machine_name": "civicrm_starterkit", "description": "[CiviCRM](http://civicrm.org/) is a web-based, open source, CRM geared toward meeting the needs of non-profit and civic-sector organizations. The starter kit integrates CiviCRM with Drupal.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/civicrm-icon.png", "label": "CiviCRM Starter Kit", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "3b754bc2-48f8-4388-b5b5-2631098d03de"}, {"machine_name": "kickstart", "description": "A software distribution for sites of any size that provides all the power and flexibility of Drupal Commerce, combined with components that accelerate creation and launch of an online store.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/commerce-kickstart-icon.png", "label": "Commerce Kickstart", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8a662dde-53d6-4fdb-8eac-eea9f5848d00"}, {"machine_name": "dkan", "description": "DKAN is a Drupal-based open data platform with a full suite of cataloging, publishing and visualization features that allows governments, nonprofits and universities to easily publish data to the public.", "connection_mode_default": "git", "icon_url": "https://cloud.githubusercontent.com/assets/512243/4800565/8f59086c-5e27-11e4-9f4f-5df0a5731282.png", "label": "DKAN", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "d7370d7e-46fb-4b10-b79f-942b5abf51de"}, {"machine_name": "demo-upstream", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Demo Upstream", "organization_id": "e106ce89-29d1-4c3f-962c-39d2ce73c97f", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "b1057113-272a-4509-b0b0-1362ec31d71c"}, {"machine_name": "drops-8-composer", "description": "Drops-8, managed by Composer", "connection_mode_default": "sftp", "icon_url": "https://getcomposer.org/img/logo-composer-transparent.png", "label": "Drops 8 Composer", "organization_id": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "35b0e365-a191-4c70-adbe-9d02d01343f3"}, {"machine_name": "drupal6", "description": "Drupal 6 sites run on Pantheon, but Drupal 6 reached end of life on February 24th, 2016.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal6-icon.jpg", "label": "Drupal 6", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, {"machine_name": "drupal7", "description": "The most widely installed release of the powerful open source content management platform.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, {"machine_name": "drupal8", "description": "Launch, manage, and scale ambitious digital experiences\u2014with the flexibility to build great websites or push beyond the browser. Proudly open source.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal8-icon.png", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, {"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "easteregg-kit", "description": "Easterseals Main Distribution - Developed and Managed by Molly Duggan Associates for exclusive use on Easterseals.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20Stacked%20CMYK%20300.png", "label": "EasterEgg Kit", "organization_id": "c27b42df-c2cb-c2ae-d979-ddc254a8bc44", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6"}, {"machine_name": "drupal-patterns", "description": "This is the Elephant Ventures profile distribution called Drupal Patterns.\r\nIt''s a responsive theme built for marketing websites.", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/ev-logo-square-sm.png", "label": "Elephant Ventures Drupal Patterns", "organization_id": "9813aeef-d889-4afc-9dfd-5a7433a853c9", "framework": "drupal", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "0fce9338-bd6f-4b87-a489-e9928a027696"}, {"machine_name": "empty-7", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Empty Drupal 7", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "f575e77a-ff49-4bab-a53c-dbf8f59247bc"}, {"machine_name": "empty", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/sites/all/modules/drupalorg/drupalorg/images/d8.svg", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "core", "is_organization_association_forced": 0, "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, {"machine_name": "empty-wordpress", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "Empty WordPress", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f"}, {"machine_name": "fcpsschools", "description": "Fairfax County Public Schools install profile", "connection_mode_default": "sftp", "icon_url": "https://forumone.com/apple-touch-icon-76x76.png", "label": "Fairfax County Public Schools", "organization_id": "a7e4d66b-ab92-481b-ab77-626b8562544e", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 0, "id": "c28628b2-6b8f-4962-9838-69295c3fff68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "openoutreach", "description": "[Open Outreach](http://drupal.org/project/openoutreach) is a Drupal distribution written to provide grassroots, activist, and nonprofit groups with the web tools they need for effective public engagement.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openoutreach-icon.png", "label": "Open Outreach", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "4c17f505-05d0-4b79-b38a-0bc548405a10"}, {"machine_name": "openrestaurant", "description": "The [Open Restaurant distribution](http://open.restaurant/) has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog, events management and a responsive theme.\r\n", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/styles/grid-3/public/project-images/open-restaurant-logo.png", "label": "Open Restaurant", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "6eb1ad36-afef-46d7-90d1-3a1bd4296863"}, {"machine_name": "openaid", "description": "[OpenAid](https://openaiddistro.org) is a turnkey website platform designed to help cause-driven organizations create cost-effective program-focused websites quickly.\r\n", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/files/product_icons/open-aid.png", "label": "OpenAid", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "2adff196-4672-44c9-af2a-4590963b90d8"}, {"machine_name": "openideal", "description": "[OpenideaL](http://www.openidealapp.com/) is an idea management system, for both public and commercial sectors. It is a powerful tool to analyze public opinion regarding products/services and identify trends.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openideal-icon.png", "label": "OpenIdeaL", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "86112161-4cb2-410f-8bb1-8a1fb4f56dae"}, {"machine_name": "openpublic", "description": "[OpenPublic](http://openpublicapp.com/) provides a content management system specially designed for open government goals, without compromising accessibility, security or usability.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublic-icon.png", "label": "OpenPublic", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "b459145b-8771-4597-8b84-684a3d93dce0"}, {"machine_name": "openpublish", "description": "[OpenPublish](http://openpublishapp.com/) is a flexible and powerful CMS designed for the online news industry. It is built for flexibility, customization, and extension to help publishers focus on their content.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublish-icon.png", "label": "OpenPublish", "organization_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908"}, {"machine_name": "panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is a Panels powered distribution designed to be a base framework upon which to build other Drupal distributions, but will also work for general site building.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8ad1efe0-0231-42ae-9520-c96241495b82"}, {"machine_name": "try_panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is an enhanced version of Drupal with drag & drop page building tools, responsive layouts, a WYSIWYG, and [more.](\u201dhttp://drupal.org/node/1679838\u201d) See how awesome Drupal can be, right out of the box.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "plato_tipico", "description": "This is a a preconfigured distro with multi-language support for English & Spanish. Already comes with most of the necessary modules which will save you lots of time and research.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/plato-tipico-icon.png", "label": "Plato T\u00edpico", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "216f85b2-620b-470d-9597-f64ade76dc9a"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "pushtape", "description": "Build better music websites with [Pushtape](http://drupal.org/project/pushtape), a Drupal distribution for musicians. Manage your music discography, create news updates, upload photos, post upcoming shows and more.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/pushtape-icon.png", "label": "Pushtape", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "f141b5e0-a614-4294-a86c-6c24df9bf6c5"}, {"machine_name": "redhen_raiser", "description": "RedHen Raiser is a Drupal distribution for quickly launching peer-to-peer fundraising campaigns (also referred to as crowd fundraising, team fundraising, or viral fundraising campaigns). Individual and team fundraisers join campaigns with their own customizable pages and individual goals, all contributing to the overall campaign. RedHen Raiser features easy campaign creation for teams or individuals, goal progress widgets, campaign updates, automated start and end dates, single page donation forms, and it''s Commerce ready, just add your payment method and go!", "connection_mode_default": "sftp", "icon_url": "https://assets.getpantheon.com/files/product_icons/redhen-logo.png", "label": "RedHen Raiser", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "10d6937e-1dd2-4490-9950-11867ba43597"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}, {"machine_name": "rtupstream", "description": "This a test upstream created by Ruby", "connection_mode_default": "sftp", "icon_url": "http://screencast.com/t/WdHX3CRFAc", "label": "Ruby Test Upstream", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "framework": "wordpress", "is_public_spinup_allowed": 0, "type": "product", "is_organization_association_forced": 0, "id": "10d2f3a5-728a-460f-afa9-dbaee10eef3b"}, {"machine_name": "rutgers_wp_custom", "description": "Rutgers University WordPress Custom Distribution for School Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers School Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "e44da442-2b1e-639a-f790-edf7cb26c9a0"}, {"machine_name": "ruwwpucd", "description": "Rutgers University WordPress Custom Distribution for Unit/Organization Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers Unit/Department Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "64408272-2d4b-614a-753b-334a2baf4263"}, {"machine_name": "sprowt-09022016", "description": "A Drupal 7 upstream for Pantheon", "connection_mode_default": "git", "icon_url": "http://www.coalmarch.com/sites/default/files/sprowt-logo.png", "label": "Sprowt", "organization_id": "08b99cd5-81a3-4b67-acc1-d5dba50390f8", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "158e2876-13a4-427f-96cf-d29a3daa538b"}, {"machine_name": "static_html", "description": "This is an upstream for Pantheon that is used for static HTML/JS/CSS sites ", "connection_mode_default": "git", "icon_url": "https://image.freepik.com/free-icon/html-5-logo_318-79489.png", "label": "Static HTML", "organization_id": "f057733a-d6a0-4985-81fd-1174cd5da49b", "framework": "unknown", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "de858279-cb87-4664-825c-fcb4c2928717"}, {"machine_name": "test-ps-digital", "description": "Test Custom Upstream created during the Jump Start", "connection_mode_default": "git", "icon_url": null, "label": "Test PS Digital", "organization_id": "977a8c1f-b420-499f-a675-af5dfadd55a6", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "8ed60b88-e3bb-4981-9701-777ee9e40435"}, {"machine_name": "wordpress", "description": "Open source software with powerful features, and the freedom to build anything you want.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "WordPress", "organization_id": "", "framework": "wordpress", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, {"machine_name": "wordpress-class", "description": "Wordpress 2017 for the Exchange Students of Shasta College", "connection_mode_default": "sftp", "icon_url": null, "label": "Wordpress Class", "organization_id": "8badbb50-093d-41db-8dd1-6aa78f9a6113", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "11111111-1111-1111-1111-111111111111"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/authorizations' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.6.2-dev (php_version=7.1.11&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:f0f2f154-4bb5-11e7-ad24-bc764e1141f9:CuSW4cz3c9d3ql5aoFY3R' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 12 Dec 2017 05:31:13 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: aac24500-defd-11e7-8ab4-5f1f81eb2a0e - 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": "dev", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "dev", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "dev", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "dev", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"dev\" setting"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"dev\" environment"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "dev", "is_user_authorized": true, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "dev", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "dev", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"dev\" files to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"dev\" setting"}, {"environment": "dev", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "dev", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "dev", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"dev\""}, {"environment": "test", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "test", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "test", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "test", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"test\" setting"}, {"environment": "test", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"test\" environment"}, {"environment": "test", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "test", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "test", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "test", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"test\" files to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"test\" setting"}, {"environment": "test", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "test", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "test", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"test\""}, {"environment": "live", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "live", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "live", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "live", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"live\" setting"}, {"environment": "live", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"live\" environment"}, {"environment": "live", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "live", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "live", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "live", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"live\" files to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"live\" setting"}, {"environment": "live", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "live", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "live", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"live\""}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "change_site_service_level", "description": "Change site plan"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_ownership", "description": "Transfer ownership to a user or an organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev", "description": "enable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "reenable_site", "description": "Whitelist the site from platform abuse checks"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_https", "description": "Converge HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev_for_site", "description": "Enable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "invite_to_pay", "description": "Invite a new user to pay for the site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_secure_runtime_access_for_site", "description": "Disable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "associate_site_instrument", "description": "Associate a payment method and a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "promote_site_user_to_owner", "description": "Promote user to owner"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_binding_after_migration", "description": "Converge binding after migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_zone", "description": "Bring environments to desired zone"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_user_membership", "description": "Remove a user from the site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "verify_migration_state", "description": "Verify migration state for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_organization_membership", "description": "Remove supporting organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_status", "description": "Update site status"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_cloud_development_environment", "description": "Delete a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_site", "description": "Disable site due to platform abuse"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_binding", "description": "Delete binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_user_membership", "description": "Add user to site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "set_user_in_charge", "description": "Set user in charge"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "check_for_spam", "description": "Converge site metadata"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management_for_site", "description": "Disable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "migrate_binding_for_site", "description": "Migrate binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_new_relic_for_site", "description": "Enable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_organization_membership", "description": "Add supporting organization to site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_binding_properties", "description": "Cleanup binding properties for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management", "description": "disable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "upgrade_to_global_edge_https", "description": "Start upgrade to Global CDN"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "start_migration", "description": "Start migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_organization_membership", "description": "Change supporting organization role"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "complete_migration", "description": "Complete migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev", "description": "disable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "deploy_product", "description": "Deploy a CMS (Drupal or WordPress)"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disassociate_site_instrument", "description": "Remove a payment method from a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_secure_runtime_access_for_site", "description": "Enable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_new_relic_for_site", "description": "Disable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_site", "description": "Bring environments to desired configuration state"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "switch_upstream", "description": "Switch Upstream"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_migration_method", "description": "Update migration method"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev_for_site", "description": "Disable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management_for_site", "description": "Enable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_setting", "description": "Update site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site_setting", "description": "Delete site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "downgrade_from_global_edge_https", "description": "Revert to legacy HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "create_cloud_development_environment", "description": "Create a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_environment_branch", "description": "Delete a Multidev environment branch"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "clear_code_cache", "description": "Clear Code Cache"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "unfreeze_site", "description": "unfreeze_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "configure_secure_runtime_access_for_site", "description": "configure_secure_runtime_access_for_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "freeze_site", "description": "Freeze site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_own_site_user_membership", "description": "Remove yourself from the site team."}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "site_converge_binding", "description": "Converge resource on environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_site_payment_to_organization", "description": "Transfer site billing to organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management", "description": "enable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_user_membership", "description": "Change a user role on the site team"}]' diff --git a/tests/fixtures/site-upstream-set.yml b/tests/fixtures/site-upstream-set.yml deleted file mode 100644 index 9134d4ec4..000000000 --- a/tests/fixtures/site-upstream-set.yml +++ /dev/null @@ -1,251 +0,0 @@ - -- - 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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:57 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 983ae5d0-4bb5-11e7-a578-c349578aaad1 - 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:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U","expires_at":1499282097,"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/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:59 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 99147cf0-4bb5-11e7-ba8b-1deb87f69a85 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:14:59 GMT' - Content-Type: application/json - Content-Length: '3172' - Connection: keep-alive - X-Pantheon-Trace-Id: 9968de80-4bb5-11e7-ba8b-1deb87f69a85 - 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": 1495660180, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "drush_version": 8, "framework": "drupal", "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "holder_type": "organization", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}, "name": "behat-tests", "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "label": "Protected Upstream Site", "id": "11111111-1111-1111-1111-111111111111", "holder": {"instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "maxdevsites": "10", "name": "The Upstreamers", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "service_level": "enterprise", "org_logo_height": 85, "machine_name": "the-upstreamers", "org_logo_width": 85, "has_multidev": false, "support_plan": "regular_support", "show_org_name_header": "yes", "base_domain": null, "requires_onboarding": false, "has_change_management": false, "profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "use_org_instrument": true, "settings": {"service_level": "enterprise", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 8, "label": "Protected Upstream Site", "instrument": "1796d505-ad72-0c6f-1a4f-40bdaa097f69", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "drupal", "upstream": {"url": "https://github.com/pantheon-systems/drops-6.git", "product_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "name": "behat-tests", "created": 1495660180, "max_backups": 0, "holder_type": "organization", "number_allow_domains": 0, "organization": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2017-05-24T21:10:10", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Protected Upstream Site"}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - body: '{"type":"switch_upstream","params":{"upstream_id":"974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:15:46 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b5655410-4bb5-11e7-99d5-bb7839a7ff0e - 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: '{"final_task_id": "b57b1138-4bb5-11e7-bd33-bc764e1022a9", "finished_at": 1496862946.507096, "params": {"upstream_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496862946.453336, "task_ids": ["b57b1138-4bb5-11e7-bd33-bc764e1022a9"], "trace_id": "b5655410-4bb5-11e7-99d5-bb7839a7ff0e", "type": "switch_upstream", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "b576919e-4bb5-11e7-bd33-bc764e1022a9", "key": "1496862000", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.05376005172729492, "created_at": 1496862946.369987, "environment": null, "total_time": 0.13710904121398926, "active_description": "Switched Upstream", "description": "Switch Upstream", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:b5655410-4bb5-11e7-99d5-bb7839a7ff0e%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:10:46.369987Z%27,mode:quick,to:%272017-06-07T19:20:46.507096Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1433793438, "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": "dev", "finished_at": 1496862946.475639, "fn_name": "trigger_task", "params": {"upstream_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "task_type": "switch_upstream", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1496862946.453809, "responses": [{"code": 200, "body": "Site 11111111-1111-1111-1111-111111111111 was switched to use the upstream Drupal 6 (974b75c2-4ba7-49f8-8a54-3a45c07dfe02).", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496862946.453816, "trace_id": "b5655410-4bb5-11e7-99d5-bb7839a7ff0e", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "b576919e-4bb5-11e7-bd33-bc764e1022a9", "id": "b57b1138-4bb5-11e7-bd33-bc764e1022a9", "key": "1496862000", "queued_time": 6.9141387939453125e-06, "host": null, "phase": "finished", "created_at": 1496862946.399468, "allow_concurrent": false, "run_time": 0.02182316780090332, "total_time": 0.0761711597442627, "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:b5655410-4bb5-11e7-99d5-bb7839a7ff0e%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:10:46.399468Z%27,mode:quick,to:%272017-06-07T19:20:46.475639Z%27))", "type": "switch_upstream", "build_url": null, "messages": {"2017-06-07T19:15:46.533297": {"message": "Site 11111111-1111-1111-1111-111111111111 was switched to use the upstream Drupal 6 (974b75c2-4ba7-49f8-8a54-3a45c07dfe02).", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/b576919e-4bb5-11e7-bd33-bc764e1022a9' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.3.1-dev (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 07 Jun 2017 19:15:46 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: b5b8a430-4bb5-11e7-ba8b-1deb87f69a85 - 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: '{"final_task_id": "b57b1138-4bb5-11e7-bd33-bc764e1022a9", "finished_at": 1496862946.507096, "params": {"upstream_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496862946.453336, "task_ids": ["b57b1138-4bb5-11e7-bd33-bc764e1022a9"], "trace_id": "b5655410-4bb5-11e7-99d5-bb7839a7ff0e", "type": "switch_upstream", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "b576919e-4bb5-11e7-bd33-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 0.05376005172729492, "created_at": 1496862946.369987, "environment": null, "total_time": 0.13710904121398926, "active_description": "Switched Upstream", "description": "Switch Upstream", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:b5655410-4bb5-11e7-99d5-bb7839a7ff0e%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:10:46.369987Z%27,mode:quick,to:%272017-06-07T19:20:46.507096Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1433793438, "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": "dev", "finished_at": 1496862946.475639, "fn_name": "trigger_task", "params": {"upstream_id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02", "task_type": "switch_upstream", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1496862946.453809, "responses": [{"code": 200, "body": "Site 11111111-1111-1111-1111-111111111111 was switched to use the upstream Drupal 6 (974b75c2-4ba7-49f8-8a54-3a45c07dfe02).", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1496862946.453816, "trace_id": "b5655410-4bb5-11e7-99d5-bb7839a7ff0e", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "b576919e-4bb5-11e7-bd33-bc764e1022a9", "id": "b57b1138-4bb5-11e7-bd33-bc764e1022a9", "key": "1496862000", "queued_time": 6.9141387939453125e-06, "host": null, "phase": "finished", "created_at": 1496862946.399468, "allow_concurrent": false, "run_time": 0.02182316780090332, "total_time": 0.0761711597442627, "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:b5655410-4bb5-11e7-99d5-bb7839a7ff0e%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272017-06-07T19:10:46.399468Z%27,mode:quick,to:%272017-06-07T19:20:46.475639Z%27))", "type": "switch_upstream", "build_url": null, "messages": {"2017-06-07T19:15:46.925393": {"message": "Site 11111111-1111-1111-1111-111111111111 was switched to use the upstream Drupal 6 (974b75c2-4ba7-49f8-8a54-3a45c07dfe02).", "level": "INFO"}}}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9885c82a-4bb5-11e7-9ba0-bc764e10d7c2:lzTbwUde3v8LECMQorG5U' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Hy6yost: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '[{"machine_name": "advostarter-d8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Advostarter D8", "organization_id": "2d9c0d71-3bc6-4f3a-8517-d4de231ed69a", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "cbdeadf3-669f-4848-94f5-c2354f256de8"}, {"machine_name": "openatrium2", "description": "[Atrium](http://openatrium.com/) is an adaptable platform that allows you to confidently engage with your colleagues through convenient collaboration.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openatrium-icon.png", "label": "Atrium", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "31bc4254-be20-4e8d-afe6-6c585e58435a"}, {"machine_name": "backdrop", "description": "Backdrop is a fully-featured content management system that allows non-technical users to manage a wide-variety of content. It can be used to create blogs, forums, image galleries, social networks, intranets, and more.", "connection_mode_default": "git", "icon_url": "https://live-pantheon-assets.gotpantheon.com/files/product_icons/backdrop.png", "label": "Backdrop", "organization_id": "36b51e56-4969-4deb-a0e2-093bcc66862c", "framework": "backdrop", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "bf703821-4c18-45a1-88b8-3d9ec302273d"}, {"machine_name": "cuexpress", "description": "The Express install profile designed and supported by Developers to allow Site Owners to create great looking websites that meet a university''s accessibility, security, and branding policies. Site Owner are not Site Builders. Express users are not expected (or allowed) to create content types, fields, or views. While limiting, this approach makes it possible to maintain a large number of Express sites with a relatively small staff.", "connection_mode_default": "sftp", "icon_url": "https://www.cu.edu/sites/all/themes/cu/logo_small.png", "label": "CU Express 3", "organization_id": "63a252dd-5802-4e3e-ad99-02ddee681f34", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "6413825e-7c23-3549-bbf1-c797251bf6e9"}, {"machine_name": "civicrm_starterkit", "description": "[CiviCRM](http://civicrm.org/) is a web-based, open source, CRM geared toward meeting the needs of non-profit and civic-sector organizations. The starter kit integrates CiviCRM with Drupal.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/civicrm-icon.png", "label": "CiviCRM Starter Kit", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "3b754bc2-48f8-4388-b5b5-2631098d03de"}, {"machine_name": "kickstart", "description": "A software distribution for sites of any size that provides all the power and flexibility of Drupal Commerce, combined with components that accelerate creation and launch of an online store.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/commerce-kickstart-icon.png", "label": "Commerce Kickstart", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8a662dde-53d6-4fdb-8eac-eea9f5848d00"}, {"machine_name": "dkan", "description": "DKAN is a Drupal-based open data platform with a full suite of cataloging, publishing and visualization features that allows governments, nonprofits and universities to easily publish data to the public.", "connection_mode_default": "git", "icon_url": "https://cloud.githubusercontent.com/assets/512243/4800565/8f59086c-5e27-11e4-9f4f-5df0a5731282.png", "label": "DKAN", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "d7370d7e-46fb-4b10-b79f-942b5abf51de"}, {"machine_name": "demo-upstream", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Demo Upstream", "organization_id": "e106ce89-29d1-4c3f-962c-39d2ce73c97f", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "b1057113-272a-4509-b0b0-1362ec31d71c"}, {"machine_name": "drops-8-composer", "description": "Drops-8, managed by Composer", "connection_mode_default": "sftp", "icon_url": "https://getcomposer.org/img/logo-composer-transparent.png", "label": "Drops 8 Composer", "organization_id": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "35b0e365-a191-4c70-adbe-9d02d01343f3"}, {"machine_name": "drupal6", "description": "Drupal 6 sites run on Pantheon, but Drupal 6 reached end of life on February 24th, 2016.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal6-icon.jpg", "label": "Drupal 6", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, {"machine_name": "drupal7", "description": "The most widely installed release of the powerful open source content management platform.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, {"machine_name": "drupal8", "description": "Launch, manage, and scale ambitious digital experiences\u2014with the flexibility to build great websites or push beyond the browser. Proudly open source.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal8-icon.png", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, {"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "easteregg-kit", "description": "Easterseals Main Distribution - Developed and Managed by Molly Duggan Associates for exclusive use on Easterseals.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20Stacked%20CMYK%20300.png", "label": "EasterEgg Kit", "organization_id": "c27b42df-c2cb-c2ae-d979-ddc254a8bc44", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6"}, {"machine_name": "drupal-patterns", "description": "This is the Elephant Ventures profile distribution called Drupal Patterns.\r\nIt''s a responsive theme built for marketing websites.", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/ev-logo-square-sm.png", "label": "Elephant Ventures Drupal Patterns", "organization_id": "9813aeef-d889-4afc-9dfd-5a7433a853c9", "framework": "drupal", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "0fce9338-bd6f-4b87-a489-e9928a027696"}, {"machine_name": "empty-7", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Empty Drupal 7", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "f575e77a-ff49-4bab-a53c-dbf8f59247bc"}, {"machine_name": "empty", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/sites/all/modules/drupalorg/drupalorg/images/d8.svg", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "core", "is_organization_association_forced": 0, "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, {"machine_name": "empty-wordpress", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "Empty WordPress", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f"}, {"machine_name": "fcpsschools", "description": "Fairfax County Public Schools install profile", "connection_mode_default": "sftp", "icon_url": "https://forumone.com/apple-touch-icon-76x76.png", "label": "Fairfax County Public Schools", "organization_id": "a7e4d66b-ab92-481b-ab77-626b8562544e", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 0, "id": "c28628b2-6b8f-4962-9838-69295c3fff68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "openoutreach", "description": "[Open Outreach](http://drupal.org/project/openoutreach) is a Drupal distribution written to provide grassroots, activist, and nonprofit groups with the web tools they need for effective public engagement.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openoutreach-icon.png", "label": "Open Outreach", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "4c17f505-05d0-4b79-b38a-0bc548405a10"}, {"machine_name": "openrestaurant", "description": "The [Open Restaurant distribution](http://open.restaurant/) has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog, events management and a responsive theme.\r\n", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/styles/grid-3/public/project-images/open-restaurant-logo.png", "label": "Open Restaurant", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "6eb1ad36-afef-46d7-90d1-3a1bd4296863"}, {"machine_name": "openaid", "description": "[OpenAid](https://openaiddistro.org) is a turnkey website platform designed to help cause-driven organizations create cost-effective program-focused websites quickly.\r\n", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/files/product_icons/open-aid.png", "label": "OpenAid", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "2adff196-4672-44c9-af2a-4590963b90d8"}, {"machine_name": "openideal", "description": "[OpenideaL](http://www.openidealapp.com/) is an idea management system, for both public and commercial sectors. It is a powerful tool to analyze public opinion regarding products/services and identify trends.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openideal-icon.png", "label": "OpenIdeaL", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "86112161-4cb2-410f-8bb1-8a1fb4f56dae"}, {"machine_name": "openpublic", "description": "[OpenPublic](http://openpublicapp.com/) provides a content management system specially designed for open government goals, without compromising accessibility, security or usability.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublic-icon.png", "label": "OpenPublic", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "b459145b-8771-4597-8b84-684a3d93dce0"}, {"machine_name": "openpublish", "description": "[OpenPublish](http://openpublishapp.com/) is a flexible and powerful CMS designed for the online news industry. It is built for flexibility, customization, and extension to help publishers focus on their content.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublish-icon.png", "label": "OpenPublish", "organization_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908"}, {"machine_name": "panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is a Panels powered distribution designed to be a base framework upon which to build other Drupal distributions, but will also work for general site building.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8ad1efe0-0231-42ae-9520-c96241495b82"}, {"machine_name": "try_panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is an enhanced version of Drupal with drag & drop page building tools, responsive layouts, a WYSIWYG, and [more.](\u201dhttp://drupal.org/node/1679838\u201d) See how awesome Drupal can be, right out of the box.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "plato_tipico", "description": "This is a a preconfigured distro with multi-language support for English & Spanish. Already comes with most of the necessary modules which will save you lots of time and research.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/plato-tipico-icon.png", "label": "Plato T\u00edpico", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "216f85b2-620b-470d-9597-f64ade76dc9a"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "pushtape", "description": "Build better music websites with [Pushtape](http://drupal.org/project/pushtape), a Drupal distribution for musicians. Manage your music discography, create news updates, upload photos, post upcoming shows and more.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/pushtape-icon.png", "label": "Pushtape", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "f141b5e0-a614-4294-a86c-6c24df9bf6c5"}, {"machine_name": "redhen_raiser", "description": "RedHen Raiser is a Drupal distribution for quickly launching peer-to-peer fundraising campaigns (also referred to as crowd fundraising, team fundraising, or viral fundraising campaigns). Individual and team fundraisers join campaigns with their own customizable pages and individual goals, all contributing to the overall campaign. RedHen Raiser features easy campaign creation for teams or individuals, goal progress widgets, campaign updates, automated start and end dates, single page donation forms, and it''s Commerce ready, just add your payment method and go!", "connection_mode_default": "sftp", "icon_url": "https://assets.getpantheon.com/files/product_icons/redhen-logo.png", "label": "RedHen Raiser", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "10d6937e-1dd2-4490-9950-11867ba43597"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}, {"machine_name": "rtupstream", "description": "This a test upstream created by Ruby", "connection_mode_default": "sftp", "icon_url": "http://screencast.com/t/WdHX3CRFAc", "label": "Ruby Test Upstream", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "framework": "wordpress", "is_public_spinup_allowed": 0, "type": "product", "is_organization_association_forced": 0, "id": "10d2f3a5-728a-460f-afa9-dbaee10eef3b"}, {"machine_name": "rutgers_wp_custom", "description": "Rutgers University WordPress Custom Distribution for School Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers School Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "e44da442-2b1e-639a-f790-edf7cb26c9a0"}, {"machine_name": "ruwwpucd", "description": "Rutgers University WordPress Custom Distribution for Unit/Organization Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers Unit/Department Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "64408272-2d4b-614a-753b-334a2baf4263"}, {"machine_name": "sprowt-09022016", "description": "A Drupal 7 upstream for Pantheon", "connection_mode_default": "git", "icon_url": "http://www.coalmarch.com/sites/default/files/sprowt-logo.png", "label": "Sprowt", "organization_id": "08b99cd5-81a3-4b67-acc1-d5dba50390f8", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "158e2876-13a4-427f-96cf-d29a3daa538b"}, {"machine_name": "static_html", "description": "This is an upstream for Pantheon that is used for static HTML/JS/CSS sites ", "connection_mode_default": "git", "icon_url": "https://image.freepik.com/free-icon/html-5-logo_318-79489.png", "label": "Static HTML", "organization_id": "f057733a-d6a0-4985-81fd-1174cd5da49b", "framework": "unknown", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "de858279-cb87-4664-825c-fcb4c2928717"}, {"machine_name": "test-ps-digital", "description": "Test Custom Upstream created during the Jump Start", "connection_mode_default": "git", "icon_url": null, "label": "Test PS Digital", "organization_id": "977a8c1f-b420-499f-a675-af5dfadd55a6", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "8ed60b88-e3bb-4981-9701-777ee9e40435"}, {"machine_name": "wordpress", "description": "Open source software with powerful features, and the freedom to build anything you want.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "WordPress", "organization_id": "", "framework": "wordpress", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, {"machine_name": "wordpress-class", "description": "Wordpress 2017 for the Exchange Students of Shasta College", "connection_mode_default": "sftp", "icon_url": null, "label": "Wordpress Class", "organization_id": "8badbb50-093d-41db-8dd1-6aa78f9a6113", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "11111111-1111-1111-1111-111111111111"}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/authorizations' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.6.2-dev (php_version=7.1.11&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 12 Dec 2017 05:31:13 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: aac24500-defd-11e7-8ab4-5f1f81eb2a0e - 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": "dev", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "dev", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "dev", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "dev", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"dev\" setting"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"dev\" environment"}, {"environment": "dev", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "dev", "is_user_authorized": true, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "dev", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "dev", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"dev\" files to new cluster"}, {"environment": "dev", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"dev\" setting"}, {"environment": "dev", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "dev", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"dev\""}, {"environment": "dev", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "dev", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"dev\""}, {"environment": "dev", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"dev\""}, {"environment": "test", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "test", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "test", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "test", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"test\" setting"}, {"environment": "test", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"test\" environment"}, {"environment": "test", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "test", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "test", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "test", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"test\" files to new cluster"}, {"environment": "test", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"test\" setting"}, {"environment": "test", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "test", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"test\""}, {"environment": "test", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "test", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"test\""}, {"environment": "test", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"test\""}, {"environment": "live", "is_user_authorized": true, "id": "do_restore", "description": "Restore code, database and files for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_import", "description": "Import configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_files", "description": "Restore files on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock_environment", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "do_migration", "description": "Migrate site"}, {"environment": "live", "is_user_authorized": false, "id": "flush", "description": "Invalidate filesystem cache on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_environment", "description": "Converge \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "unlock", "description": "Unlock \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "converge_loadbalancer", "description": "Converge static IP for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_converge_binding", "description": "Converge resource on environment"}, {"environment": "live", "is_user_authorized": true, "id": "do_export", "description": "Export code, files and database from \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "change_backup_schedule", "description": "Change backup schedule for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_bindings", "description": "Clear routing cache to containers for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "environment_remove_domain", "description": "Remove domain from environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clear_cache", "description": "Clear cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_files", "description": "Clone files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "sync_code", "description": "Sync code on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "clone_database", "description": "Clone database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "merge_dev_into_cloud_development_environment", "description": "Merge code from master into \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "create_environment", "description": "Create environment \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "commit_and_push_on_server_changes", "description": "Commit code changes"}, {"environment": "live", "is_user_authorized": true, "id": "import_database", "description": "Import database to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "enable_environment_maintenance_mode", "description": "Enable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wp_replace_siteurl", "description": "Replace WordPress site URLs on \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "get_screenshot", "description": "Take screenshot of \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_database", "description": "Run drush \"updatedb\" on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "restore_database", "description": "Restore database on \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "update_environment_setting", "description": "Update \"live\" setting"}, {"environment": "live", "is_user_authorized": true, "id": "environment_connect_domain", "description": "Connect domain to environment \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_styx_routes_to_hostnames", "description": "Clear routing cache to hostnames for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "restore_code", "description": "Restore code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "wipe_environment", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_on_server_development", "description": "Enable on-server development via SFTP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "lock_environment", "description": "Lock \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "automated_backup", "description": "Automated backup for the \"live\" environment"}, {"environment": "live", "is_user_authorized": true, "id": "environment_set_https", "description": "environment_set_https"}, {"environment": "live", "is_user_authorized": false, "id": "merge_cloud_development_environment_into_dev", "description": "Merge code into master"}, {"environment": "live", "is_user_authorized": true, "id": "wipe", "description": "Wipe files and database in \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "config_export", "description": "Export configuration for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_files", "description": "Import files to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "import_code", "description": "Import code to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "enable_git_mode", "description": "Enable git push mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "purge_varnish", "description": "Purge edge cache for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_environment", "description": "Delete \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "rotate_password", "description": "Rotate password for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "apply_upstream_updates", "description": "Apply upstream updates"}, {"environment": "live", "is_user_authorized": true, "id": "migrate_files", "description": "Migrate \"live\" files to new cluster"}, {"environment": "live", "is_user_authorized": true, "id": "cleanup_loadbalancer", "description": "Clean up static IP for \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "delete_environment_setting", "description": "Delete \"live\" setting"}, {"environment": "live", "is_user_authorized": false, "id": "clear_code_cache", "description": "Clear Code Cache"}, {"environment": "live", "is_user_authorized": true, "id": "do_import", "description": "Import code, files and database to \"live\""}, {"environment": "live", "is_user_authorized": true, "id": "deploy", "description": "Deploy code to \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "ban_varnish_routes", "description": "Clear edge cache for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "environment_update_pantheon_yml", "description": "Update pantheon.yml for environment"}, {"environment": "live", "is_user_authorized": false, "id": "disable_environment_maintenance_mode", "description": "Disable maintenance mode for \"live\""}, {"environment": "live", "is_user_authorized": false, "id": "clear_redis_cache", "description": "Clear Redis cache for \"live\""}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "change_site_service_level", "description": "Change site plan"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_ownership", "description": "Transfer ownership to a user or an organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev", "description": "enable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "reenable_site", "description": "Whitelist the site from platform abuse checks"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_https", "description": "Converge HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_multidev_for_site", "description": "Enable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "invite_to_pay", "description": "Invite a new user to pay for the site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_secure_runtime_access_for_site", "description": "Disable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "associate_site_instrument", "description": "Associate a payment method and a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "promote_site_user_to_owner", "description": "Promote user to owner"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_binding_after_migration", "description": "Converge binding after migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_zone", "description": "Bring environments to desired zone"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_user_membership", "description": "Remove a user from the site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "verify_migration_state", "description": "Verify migration state for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_site_organization_membership", "description": "Remove supporting organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_status", "description": "Update site status"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_cloud_development_environment", "description": "Delete a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_site", "description": "Disable site due to platform abuse"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_binding", "description": "Delete binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_user_membership", "description": "Add user to site team"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "set_user_in_charge", "description": "Set user in charge"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "check_for_spam", "description": "Converge site metadata"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management_for_site", "description": "Disable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "migrate_binding_for_site", "description": "Migrate binding for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_new_relic_for_site", "description": "Enable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "add_site_organization_membership", "description": "Add supporting organization to site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_binding_properties", "description": "Cleanup binding properties for site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_change_management", "description": "disable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "upgrade_to_global_edge_https", "description": "Start upgrade to Global CDN"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "start_migration", "description": "Start migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_organization_membership", "description": "Change supporting organization role"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "complete_migration", "description": "Complete migration"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev", "description": "disable_multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "cleanup_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "deploy_product", "description": "Deploy a CMS (Drupal or WordPress)"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disassociate_site_instrument", "description": "Remove a payment method from a site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_secure_runtime_access_for_site", "description": "Enable secure runtime access"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_new_relic_for_site", "description": "Disable New Relic"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_site", "description": "Bring environments to desired configuration state"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "switch_upstream", "description": "Switch Upstream"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_migration_method", "description": "Update migration method"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "disable_multidev_for_site", "description": "Disable multidev"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management_for_site", "description": "Enable change management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_setting", "description": "Update site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site_setting", "description": "Delete site setting"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "converge_valhalla", "description": "Converge valhalla to new cluster"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "downgrade_from_global_edge_https", "description": "Revert to legacy HTTPS"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_site", "description": "Delete site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "create_cloud_development_environment", "description": "Create a Multidev environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "delete_environment_branch", "description": "Delete a Multidev environment branch"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "clear_code_cache", "description": "Clear Code Cache"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "unfreeze_site", "description": "unfreeze_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "configure_secure_runtime_access_for_site", "description": "configure_secure_runtime_access_for_site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "freeze_site", "description": "Freeze site"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "remove_own_site_user_membership", "description": "Remove yourself from the site team."}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "site_converge_binding", "description": "Converge resource on environment"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "transfer_site_payment_to_organization", "description": "Transfer site billing to organization"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": false, "site_id": "11111111-1111-1111-1111-111111111111", "id": "enable_change_management", "description": "enable_change_management"}, {"user_id": "11111111-1111-1111-1111-111111111111", "is_user_authorized": true, "site_id": "11111111-1111-1111-1111-111111111111", "id": "update_site_user_membership", "description": "Change a user role on the site team"}]' diff --git a/tests/fixtures/solr-disable.yml b/tests/fixtures/solr-disable.yml deleted file mode 100644 index a411288b1..000000000 --- a/tests/fixtures/solr-disable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:57 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: acae7900-4225-11ea-9a50-d922ffe20b09 - 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:acecb95e-4225-11ea-9769-42010a800160:Oq2Edqb83igCMsn38rK6P","expires_at":1582673217,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acecb95e-4225-11ea-9769-42010a800160:Oq2Edqb83igCMsn38rK6P' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:57 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ad6c4ac0-4225-11ea-8904-6db0b22e88af - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acecb95e-4225-11ea-9769-42010a800160:Oq2Edqb83igCMsn38rK6P' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:58 GMT' - Content-Type: application/json - Content-Length: '4454' - Connection: keep-alive - X-Pantheon-Trace-Id: ad972b50-4225-11ea-adc1-6113b7d1b512 - 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: '{"allow_indexserver": true, "created": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580252562, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": true, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"global_edge_https_upgrade_available": false, "global_edge_https_upgrade_ignored": false, "global_edge_https_upgrade_in_progress": false, "has_global_edge_https": false, "label": "Behat Tests"}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acecb95e-4225-11ea-9769-42010a800160:Oq2Edqb83igCMsn38rK6P' - Accept: null - body: '{"type":"disable_addon","params":{"addon":"indexserver"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:27:01 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ae3ae560-4225-11ea-a9fc-ab35111d319d - 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: '{"params": {"addon": "indexserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580254019.333852, "task_ids": ["ae410526-4225-11ea-b961-42010a8001a4", "ae4276c2-4225-11ea-b961-42010a8001a4", "ae93d080-4225-11ea-b961-42010a8001a4", "ae94fafa-4225-11ea-b961-42010a8001a4", "ae97d298-4225-11ea-b961-42010a8001a4", "ae984c6e-4225-11ea-b961-42010a8001a4", "ae98d27e-4225-11ea-b961-42010a8001a4", "ae99814c-4225-11ea-b961-42010a8001a4", "aed5466e-4225-11ea-b961-42010a8001a4", "aed6ddc6-4225-11ea-b961-42010a8001a4", "aeda2788-4225-11ea-b961-42010a8001a4", "aedaa492-4225-11ea-b961-42010a8001a4", "aedb3aba-4225-11ea-b961-42010a8001a4", "aedbd95c-4225-11ea-b961-42010a8001a4", "af4af1c0-4225-11ea-b961-42010a8001a4", "af50049e-4225-11ea-b961-42010a8001a4", "af552eb0-4225-11ea-b961-42010a8001a4", "af537584-4225-11ea-b961-42010a8001a4", "af5452ce-4225-11ea-b961-42010a8001a4", "af54b098-4225-11ea-b961-42010a8001a4", "af55c276-4225-11ea-b961-42010a8001a4", "af5dc534-4225-11ea-b961-42010a8001a4", "af5f003e-4225-11ea-b961-42010a8001a4"], "trace_id": "ae3ae560-4225-11ea-a9fc-ab35111d319d", "type": "disable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "ae93d080-4225-11ea-b961-42010a8001a4", "id": "ae3f8c64-4225-11ea-b961-42010a8001a4", "key": "1580252400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580254019.28449, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Disabling indexserver for site", "description": "Disable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 23, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:ae3ae560-4225-11ea-a9fc-ab35111d319d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:59.284490Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580254021.328119, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "ae93d080-4225-11ea-b961-42010a8001a4", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "ae3ae560-4225-11ea-a9fc-ab35111d319d", "workflow_id": "ae3f8c64-4225-11ea-b961-42010a8001a4", "id": "ae93d080-4225-11ea-b961-42010a8001a4", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "initialized", "created_at": 1580254019.836736, "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:ae3ae560-4225-11ea-a9fc-ab35111d319d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:59.836736Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/ae3f8c64-4225-11ea-b961-42010a8001a4' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:acecb95e-4225-11ea-9769-42010a800160:Oq2Edqb83igCMsn38rK6P' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:27:03 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: af9f5760-4225-11ea-9e55-ad34d59a1fcf - 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: '{"params": {"addon": "indexserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580254019.333852, "task_ids": ["ae410526-4225-11ea-b961-42010a8001a4", "ae4276c2-4225-11ea-b961-42010a8001a4", "ae93d080-4225-11ea-b961-42010a8001a4", "ae94fafa-4225-11ea-b961-42010a8001a4", "ae97d298-4225-11ea-b961-42010a8001a4", "ae984c6e-4225-11ea-b961-42010a8001a4", "ae98d27e-4225-11ea-b961-42010a8001a4", "ae99814c-4225-11ea-b961-42010a8001a4", "aed5466e-4225-11ea-b961-42010a8001a4", "aed6ddc6-4225-11ea-b961-42010a8001a4", "aeda2788-4225-11ea-b961-42010a8001a4", "aedaa492-4225-11ea-b961-42010a8001a4", "aedb3aba-4225-11ea-b961-42010a8001a4", "aedbd95c-4225-11ea-b961-42010a8001a4", "af4af1c0-4225-11ea-b961-42010a8001a4", "af50049e-4225-11ea-b961-42010a8001a4", "af552eb0-4225-11ea-b961-42010a8001a4", "af537584-4225-11ea-b961-42010a8001a4", "af5452ce-4225-11ea-b961-42010a8001a4", "af54b098-4225-11ea-b961-42010a8001a4", "af55c276-4225-11ea-b961-42010a8001a4", "af5dc534-4225-11ea-b961-42010a8001a4", "af5f003e-4225-11ea-b961-42010a8001a4"], "trace_id": "ae3ae560-4225-11ea-a9fc-ab35111d319d", "type": "disable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "ae97d298-4225-11ea-b961-42010a8001a4", "id": "ae3f8c64-4225-11ea-b961-42010a8001a4", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580254019.28449, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Disabling indexserver for site", "description": "Disable addon for site", "step": 5, "has_operation_log_output": false, "number_of_tasks": 23, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:ae3ae560-4225-11ea-a9fc-ab35111d319d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:59.284490Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580254023.43833, "params": {"host": "35.232.171.155", "task_type": "converge_appserver_binding", "job_id": "ae97d298-4225-11ea-b961-42010a8001a4", "binding_id": "1f0486ea89c64b4eba939683d0d0bac3"}, "queued_at": 1580254023.44789, "responses": [{"code": 201, "body": "Successfully queued converge_appserver_binding", "error_details": "", "internal_reason": ""}], "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "ae3ae560-4225-11ea-a9fc-ab35111d319d", "user_id": null, "workflow_id": "ae3f8c64-4225-11ea-b961-42010a8001a4", "id": "ae97d298-4225-11ea-b961-42010a8001a4", "key": "1580252400", "queued_time": null, "host": "35.232.171.155", "result": "succeeded", "phase": "queued", "created_at": 1580254019.863004, "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:ae3ae560-4225-11ea-a9fc-ab35111d319d%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:59.863004Z%27,mode:quick,to:%27now%27))", "type": "converge_appserver_binding", "build_url": null, "messages": {"2020-01-28T23:27:03.857628": {"message": "Successfully queued converge_appserver_binding", "level": "INFO"}}}}' diff --git a/tests/fixtures/solr-enable.yml b/tests/fixtures/solr-enable.yml deleted file mode 100644 index 78b46f52f..000000000 --- a/tests/fixtures/solr-enable.yml +++ /dev/null @@ -1,158 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:20 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 96b4dcc0-4225-11ea-af97-d7e89f379971 - 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:96ef8ae6-4225-11ea-9256-42010a800058:iS0b3mQPlptHvmGTAlAQj","expires_at":1582673180,"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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:96ef8ae6-4225-11ea-9256-42010a800058:iS0b3mQPlptHvmGTAlAQj' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:21 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9777dea0-4225-11ea-b4f7-57c0ce59c983 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:96ef8ae6-4225-11ea-9256-42010a800058:iS0b3mQPlptHvmGTAlAQj' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:21 GMT' - Content-Type: application/json - Content-Length: '4428' - Connection: keep-alive - X-Pantheon-Trace-Id: 97a09c50-4225-11ea-950e-b9a9c048c0ce - 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": 1580251289, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "domain_lookup_rax": 1580252562, "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-f", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "label": "Behat Tests", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-f", "site_id": "11111111-1111-1111-1111-111111111111", "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": 1, "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 0, "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": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580252562, "framework": "wordpress", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1580251289, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-28T22:42:05", "user_uuid": null}}, "base_domain": null, "attributes": {"global_edge_https_upgrade_available": false, "global_edge_https_upgrade_ignored": false, "global_edge_https_upgrade_in_progress": false, "has_global_edge_https": false, "label": "Behat Tests"}, "add_ons": []}' -- - request: - method: POST - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: 'onebox' - Expect: null - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:96ef8ae6-4225-11ea-9256-42010a800058:iS0b3mQPlptHvmGTAlAQj' - Accept: null - body: '{"type":"enable_addon","params":{"addon":"indexserver"}}' - response: - status: - http_version: '1.1' - code: '202' - message: Accepted - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:31 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 983d9fa0-4225-11ea-af97-d7e89f379971 - 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: '{"params": {"addon": "indexserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253982.445897, "task_ids": ["9843cd30-4225-11ea-9053-42010a800058", "98456df2-4225-11ea-9053-42010a800058", "9a0d30ac-4225-11ea-9053-42010a800058", "9a0ec73c-4225-11ea-9053-42010a800058", "9a13117a-4225-11ea-9053-42010a800058", "9a11e3d6-4225-11ea-9053-42010a800058", "9a1257a8-4225-11ea-9053-42010a800058", "9a13e6fe-4225-11ea-9053-42010a800058", "9bc6950a-4225-11ea-9053-42010a800058", "9bce1014-4225-11ea-9053-42010a800058", "9bd301dc-4225-11ea-9053-42010a800058", "9bd1ffb2-4225-11ea-9053-42010a800058", "9bd3862a-4225-11ea-9053-42010a800058", "9bd485d4-4225-11ea-9053-42010a800058", "9dad8e14-4225-11ea-9053-42010a800058", "9daff596-4225-11ea-9053-42010a800058", "9dbbb28c-4225-11ea-9053-42010a800058", "9db995f6-4225-11ea-9053-42010a800058", "9dba5ba8-4225-11ea-9053-42010a800058", "9dbb1868-4225-11ea-9053-42010a800058", "9dbc2c80-4225-11ea-9053-42010a800058", "9dc9c8b8-4225-11ea-9053-42010a800058", "9dcebbde-4225-11ea-9053-42010a800058"], "trace_id": "983d9fa0-4225-11ea-af97-d7e89f379971", "type": "enable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "9a0d30ac-4225-11ea-9053-42010a800058", "id": "9842b0e4-4225-11ea-9053-42010a800058", "key": "1580252400", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580253982.39521, "reason": "", "environment": null, "final_task_id": null, "result": null, "total_time": null, "active_description": "Enabling indexserver for site", "description": "Enable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 23, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:983d9fa0-4225-11ea-af97-d7e89f379971%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:22.395210Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580253991.861249, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "9a0d30ac-4225-11ea-9053-42010a800058", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "983d9fa0-4225-11ea-af97-d7e89f379971", "workflow_id": "9842b0e4-4225-11ea-9053-42010a800058", "id": "9a0d30ac-4225-11ea-9053-42010a800058", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": null, "phase": "initialized", "created_at": 1580253985.40003, "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:983d9fa0-4225-11ea-af97-d7e89f379971%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:25.400030Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/9842b0e4-4225-11ea-9053-42010a800058' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:96ef8ae6-4225-11ea-9256-42010a800058:iS0b3mQPlptHvmGTAlAQj' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 28 Jan 2020 23:26:32 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9e126410-4225-11ea-b049-eb3e46d20e8f - 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: '{"params": {"addon": "indexserver"}, "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1580253982.445897, "task_ids": ["9843cd30-4225-11ea-9053-42010a800058", "98456df2-4225-11ea-9053-42010a800058", "9a0d30ac-4225-11ea-9053-42010a800058", "9a0ec73c-4225-11ea-9053-42010a800058", "9a13117a-4225-11ea-9053-42010a800058", "9a11e3d6-4225-11ea-9053-42010a800058", "9a1257a8-4225-11ea-9053-42010a800058", "9a13e6fe-4225-11ea-9053-42010a800058", "9bc6950a-4225-11ea-9053-42010a800058", "9bce1014-4225-11ea-9053-42010a800058", "9bd301dc-4225-11ea-9053-42010a800058", "9bd1ffb2-4225-11ea-9053-42010a800058", "9bd3862a-4225-11ea-9053-42010a800058", "9bd485d4-4225-11ea-9053-42010a800058", "9dad8e14-4225-11ea-9053-42010a800058", "9daff596-4225-11ea-9053-42010a800058", "9dbbb28c-4225-11ea-9053-42010a800058", "9db995f6-4225-11ea-9053-42010a800058", "9dba5ba8-4225-11ea-9053-42010a800058", "9dbb1868-4225-11ea-9053-42010a800058", "9dbc2c80-4225-11ea-9053-42010a800058", "9dc9c8b8-4225-11ea-9053-42010a800058", "9dcebbde-4225-11ea-9053-42010a800058"], "trace_id": "983d9fa0-4225-11ea-af97-d7e89f379971", "type": "enable_addon", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "9a0d30ac-4225-11ea-9053-42010a800058", "id": "9842b0e4-4225-11ea-9053-42010a800058", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1580253982.39521, "reason": "", "environment": null, "final_task_id": null, "result": "succeeded", "total_time": null, "active_description": "Enabling indexserver for site", "description": "Enable addon for site", "step": 3, "has_operation_log_output": false, "number_of_tasks": 23, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:983d9fa0-4225-11ea-af97-d7e89f379971%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:22.395210Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": {"allow_concurrent": true, "environment": "test", "fn_name": "queue_jenkins_task", "initialized_at": 1580253991.861249, "params": {"host": "localhost", "task_type": "converge_hostname", "job_id": "9a0d30ac-4225-11ea-9053-42010a800058", "hostname_id": "test-behat-tests.pantheonsite.io"}, "site_id": "11111111-1111-1111-1111-111111111111", "trace_id": "983d9fa0-4225-11ea-af97-d7e89f379971", "workflow_id": "9842b0e4-4225-11ea-9053-42010a800058", "id": "9a0d30ac-4225-11ea-9053-42010a800058", "key": "1580252400", "responses": [], "queued_time": null, "host": "localhost", "result": "succeeded", "phase": "initialized", "created_at": 1580253985.40003, "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:983d9fa0-4225-11ea-af97-d7e89f379971%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272020-01-28T23:21:25.400030Z%27,mode:quick,to:%27now%27))", "type": "converge_hostname", "build_url": null, "messages": {}}}' diff --git a/tests/fixtures/ssh-key-add.yml b/tests/fixtures/ssh-key-add.yml deleted file mode 100644 index 535183034..000000000 --- a/tests/fixtures/ssh-key-add.yml +++ /dev/null @@ -1,113 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:6990672c-6412-11e6-9af5-bc764e11bdd3:EzURunokVutBcSyOMdnix' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:6990672c-6412-11e6-9af5-bc764e11bdd3:EzURunokVutBcSyOMdnix' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:40:11 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 279e2290-6413-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl","expires_at":1473813611,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:40:12 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 28180d80-6413-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: POST - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/keys' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - verify: '1' - method: post - absolute_url: '' - json: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1gzyNJeZxJGbpMeG1Sug8esnsKc0jfCbeU6gFQ+usKw32WcOtO8YEEsmO0kz2OoZxgmmD/jTkwQ35Op96RTZUYfV0ce6nE61apxnBEPDFz0LuUcJi4U+frTC+TKzOAQQeEPUJL7J/n619dLEweLLUWChz4mw1O3aKSOPXecH2HFOfKt02VuwD4W9B9vAzCfFNRfNB7XXdp4WWzE7y+RtAR2I6UC+kDzHDVGM8hpz+f15PG7l6IEGPOB0MKn97olr7Pm4HKzF7+w3Pix84tL06AsxH0LIpNB+NlecDWLbh0Ij5qLWwyrIcIT+Tus6K586KuRg4emb+wZOGDWWkFhjN DevUser@pantheon.io' - Accept: null - body: '"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1gzyNJeZxJGbpMeG1Sug8esnsKc0jfCbeU6gFQ+usKw32WcOtO8YEEsmO0kz2OoZxgmmD/jTkwQ35Op96RTZUYfV0ce6nE61apxnBEPDFz0LuUcJi4U+frTC+TKzOAQQeEPUJL7J/n619dLEweLLUWChz4mw1O3aKSOPXecH2HFOfKt02VuwD4W9B9vAzCfFNRfNB7XXdp4WWzE7y+RtAR2I6UC+kDzHDVGM8hpz+f15PG7l6IEGPOB0MKn97olr7Pm4HKzF7+w3Pix84tL06AsxH0LIpNB+NlecDWLbh0Ij5qLWwyrIcIT+Tus6K586KuRg4emb+wZOGDWWkFhjN DevUser@pantheon.io"' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:40:13 GMT' - Content-Type: application/json - Content-Length: '34' - Connection: keep-alive - X-Pantheon-Trace-Id: 28a643c0-6413-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '"a3c83331b42a397f970913505ab4cd4f"' diff --git a/tests/fixtures/ssh-key-delete.yml b/tests/fixtures/ssh-key-delete.yml deleted file mode 100644 index d9f29b9ad..000000000 --- a/tests/fixtures/ssh-key-delete.yml +++ /dev/null @@ -1,146 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:27d9b760-6413-11e6-a7e7-bc764e10b0ce:09LG9ToEK8xVyd8T2oJKl' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:41:16 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 4cacfb60-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R","expires_at":1473813676,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:41:16 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 4e8f9e10-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/keys' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:41:17 GMT' - Content-Type: application/json - Content-Length: '1320' - Connection: keep-alive - X-Pantheon-Trace-Id: 4f14d3a0-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"15194afef0302e59c3e4239693c42ab4": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOP+Y+VI6h3F7kMq+JDw04zGoeom5DScWHQCFfNj228zmnoLAnPO9NTYsDTyKx7lu+wBdAaKrp/s5mK1n6t5j6D9Fp+Mpn8G5Ps3scB7OSqhMqi3C6pb5a+ew1Ne0il/OZGoc5+CPutC2nIM15FEJ2jef6iffjLU0Xt2Hym9ZUc8Bm+VNZgmjaLH10q8To6YE1j1OOS4FT/zJPbRBxAvoeLJnx8WwvAZAWMFWH7e3+goO0tIIrTmYzKDJ3X1DR85bd7WbTL52q3ZRYZIJXWa07eeEZhDXq+gO811Sf4HpNt9sDpy99y+r2R6t5aLiE+H9ArJt/6UGXPf4ORZxMOHuf tesladethray@Tima.local", "11111111111111111111111111111": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1gzyNJeZxJGbpMeG1Sug8esnsKc0jfCbeU6gFQ+usKw32WcOtO8YEEsmO0kz2OoZxgmmD/jTkwQ35Op96RTZUYfV0ce6nE61apxnBEPDFz0LuUcJi4U+frTC+TKzOAQQeEPUJL7J/n619dLEweLLUWChz4mw1O3aKSOPXecH2HFOfKt02VuwD4W9B9vAzCfFNRfNB7XXdp4WWzE7y+RtAR2I6UC+kDzHDVGM8hpz+f15PG7l6IEGPOB0MKn97olr7Pm4HKzF7+w3Pix84tL06AsxH0LIpNB+NlecDWLbh0Ij5qLWwyrIcIT+Tus6K586KuRg4emb+wZOGDWWkFhjN DevUser@pantheon.io", "bcc0936852daecd24a873a991da86a42": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCb4sH/dOx+oHQK9fhaxQVm2bOBTiBihapUsjXPik2KZlU1ooR3IwVplFw2dQ3k1KmsrXIKOOQS/Pjhwgu2OhK3QB2WtRRsaVXoKiUip5zkUc/179dU7H5nJYZUZ4pxorbiiYrjSdmtz3scvNuCzLBVaMtY2bBhSkCoAo8rTVy4t+kuSp4M9KMlR0yDQc6IRdVGzuncmkN0AeTLTYCgtsm/d3MZPx2qC7UDGJmWql/UE4/zLYoafC1scmIT7Z2M9b5dU7lnC092farF27b/bPG2mwVPexpgNzCUTkf45yrkOmD+x2g5DVfYL6OiXE/x5RgV9ngXsdmrXFtGHKc/amGp PIV AUTH pubkey"}' -- - request: - method: DELETE - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/keys/11111111111111111111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:4e55625e-6413-11e6-8de6-bc764e105ecb:abzigDkosfzvsTP4geC1R' - verify: '1' - method: delete - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:41:17 GMT' - Content-Type: text/html - Content-Length: '13' - Connection: keep-alive - X-Pantheon-Trace-Id: 4f4d6fd0-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: "Key deleted.\n" diff --git a/tests/fixtures/ssh-key-list.yml b/tests/fixtures/ssh-key-list.yml deleted file mode 100644 index c0f5131a8..000000000 --- a/tests/fixtures/ssh-key-list.yml +++ /dev/null @@ -1,111 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:d57ccbf6-6408-11e6-bdf6-bc764e105ecb:gjyBSIkyMz3g7fwAw3SHV' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:31:51 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fd6cdad0-6411-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:fdcf0700-6411-11e6-b5aa-bc764e1022a9:GQ5TakyqvJGr5n85Y1Z3O","expires_at":1473813111,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fdcf0700-6411-11e6-b5aa-bc764e1022a9:GQ5TakyqvJGr5n85Y1Z3O' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fdcf0700-6411-11e6-b5aa-bc764e1022a9:GQ5TakyqvJGr5n85Y1Z3O' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:31:52 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: fe0c9d40-6411-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/keys' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fdcf0700-6411-11e6-b5aa-bc764e1022a9:GQ5TakyqvJGr5n85Y1Z3O' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fdcf0700-6411-11e6-b5aa-bc764e1022a9:GQ5TakyqvJGr5n85Y1Z3O' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:31:53 GMT' - Content-Type: application/json - Content-Length: '880' - Connection: keep-alive - X-Pantheon-Trace-Id: fe941cc0-6411-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/tag-add.yml b/tests/fixtures/tag-add.yml deleted file mode 100644 index 546934921..000000000 --- a/tests/fixtures/tag-add.yml +++ /dev/null @@ -1,287 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:51b973c4-698e-11e6-93dc-bc764e11227e:F7q2UIVXJRqcA6Wiecf1f' - verify: '' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:29 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 9d606710-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV","expires_at":1474478669,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:30 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9dc877b0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:30 GMT' - Content-Type: application/json - Content-Length: '3501' - Connection: keep-alive - X-Pantheon-Trace-Id: 9e0077a0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:31 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9e3b0fa0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:31 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9e9a1f90-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:32 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9ed70180-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:32 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 9f156a10-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "service_level": "free", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "purchased_at": 1471990537, "framework": "wordpress", "cost": 0, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "instrument": null, "holder_type": "user", "php_version": "55", "attributes": {"label": "Behat Tests"}, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "tags": []}]' -- - request: - method: PUT - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/tags' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:9d671fba-6a1f-11e6-94c2-bc764e11227e:n0Qh7vTBQW9lFyZnLOwwV' - verify: '' - method: put - absolute_url: '' - json: '' - Accept: null - body: '{"testtag":{"sites":["1fdf3bf6-50e3-42d8-ae56-fb4051481404"]}}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:33 GMT' - Content-Type: text/html - Content-Length: '0' - Connection: keep-alive - X-Pantheon-Trace-Id: 9f616730-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 diff --git a/tests/fixtures/tag-list.yml b/tests/fixtures/tag-list.yml deleted file mode 100644 index 4ab04a4c2..000000000 --- a/tests/fixtures/tag-list.yml +++ /dev/null @@ -1,286 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a23c2580-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:38 GMT' - Content-Type: application/json - Content-Length: '3501' - Connection: keep-alive - X-Pantheon-Trace-Id: a2747390-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a2b1a3a0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a30d7f40-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a34be7d0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a1e2646e-6a1f-11e6-af37-bc764e11227e:clZPTlPmBpRwFMl06GWdD' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:40 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a38b13b0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "service_level": "free", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "purchased_at": 1471990537, "framework": "wordpress", "cost": 0, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "instrument": null, "holder_type": "user", "php_version": "55", "attributes": {"label": "Behat Tests"}, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "tags": ["testtag"]}]' diff --git a/tests/fixtures/tag-remove.yml b/tests/fixtures/tag-remove.yml deleted file mode 100644 index 159924454..000000000 --- a/tests/fixtures/tag-remove.yml +++ /dev/null @@ -1,320 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a454a540-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:41 GMT' - Content-Type: application/json - Content-Length: '3501' - Connection: keep-alive - X-Pantheon-Trace-Id: a48c7e20-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a4c6ef10-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a521e050-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a55f8590-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a59bf250-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "service_level": "free", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "purchased_at": 1471990537, "framework": "wordpress", "cost": 0, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "instrument": null, "holder_type": "user", "php_version": "55", "attributes": {"label": "Behat Tests"}, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "tags": ["testtag"]}]' -- - request: - method: DELETE - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/tags/testtag/sites?entity=1fdf3bf6-50e3-42d8-ae56-fb4051481404' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a3f9e57e-6a1f-11e6-83ff-bc764e11227e:Klq7rYPMLm2RI8QpPtUZi' - verify: '' - method: delete - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:44 GMT' - Content-Type: text/html - Content-Length: '0' - Connection: keep-alive - X-Pantheon-Trace-Id: a5e5cc90-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 diff --git a/tests/fixtures/tag-site-list-empty.yml b/tests/fixtures/tag-site-list-empty.yml deleted file mode 100644 index 3264ace58..000000000 --- a/tests/fixtures/tag-site-list-empty.yml +++ /dev/null @@ -1,286 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fd7bfc10-6400-11e6-b354-bc764e105ecb:aH3JMFfAtps3s4Di5rVx9' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: f535ebd0-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe","expires_at":1473807086,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Tue, 16 Aug 2016 22:51:26 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: f68d3e70-6403-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:45 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a6a217b0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:45 GMT' - Content-Type: application/json - Content-Length: '3501' - Connection: keep-alive - X-Pantheon-Trace-Id: a6d90630-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"cost": 0, "created": 1471984734, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "instrument": null, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "onebox", "purchased_at": 1471990537, "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "label": "Behat Tests", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "cost": 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, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "Behat Tests", "instrument": null, "number_allow_domains": 0, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1471990537, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "onebox", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "Behat Tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a714afa0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "8VAW03V0B1CJCFRS19KFUGIE4PTT84DV", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "live": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "I9OZYAOQ6R9CEULS04OVGZ3T04AKF1RS", "number_allow_domains": 1, "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-onebox.onebox.pantheon.io"}, "test": {"environment_created": 1471984734, "dns_zone": "onebox.pantheon.io", "randseed": "065O0TT7ZK6SP0CJ0QCXXRLQIQ0SBJ5T", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fd189de48079708075d2bed9571a039d0ffe63f", "styx_cluster": "styx-onebox.onebox.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:46 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a76f04a0-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": null, "role": "admin", "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}, {"archived": false, "invited_by_id": null, "role": "admin", "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "8bc110ff-6ee5-480a-ae4e-065593aea70a", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "razz-interactive", "change_service_url": "", "name": "Razz Interactive", "email_domain": "razzinteractive.com", "org_logo_width": 114, "org_logo_height": 85, "base_domain": "razzdev.io", "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "8bc110ff-6ee5-480a-ae4e-065593aea70a"}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/1fdf3bf6-50e3-42d8-ae56-fb4051481404/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a7aad520-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "11111111-1111-1111-1111-111111111111", "key": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "organization": {"profile": {"machine_name": "organization-name", "change_service_url": "", "name": "Organization Name", "email_domain": "", "org_logo_width": "", "org_logo_height": "", "base_domain": "", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "11111111-1111-1111-1111-111111111111"}}]' -- - request: - method: GET - url: 'https://onebox/api/organizations/11111111-1111-1111-1111-111111111111/memberships/sites?limit=100' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:a647bce8-6a1f-11e6-94c2-bc764e11227e:gaKuPmfVFQdqgTxZVPoBe' - verify: '' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 24 Aug 2016 17:24:47 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: a7e59430-6a1f-11e6-9ba8-733939e0aeaf - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"archived": false, "invited_by_id": "11111111-1111-1111-1111-111111111111", "role": "team_member", "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "11111111-1111-1111-1111-111111111111", "site_id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "site": {"user_in_charge_id": "11111111-1111-1111-1111-111111111111", "product": {"id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "longname": "WordPress"}, "service_level": "free", "user_in_charge": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "purchased_at": 1471990537, "framework": "wordpress", "cost": 0, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "branch": "master"}, "owner": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "tracking_first_organization_invite": 1465862768, "invites_to_nonuser": 5, "utm_content": "", "phone": "415-555-0000", "experiments": {"activation_walkme": "modified", "welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": true, "utm_device": "", "web_services_business": null, "initial_identity_strategy": null, "google_adwords_pushed_code_do_send": null, "utm_campaign": "", "invites_sent": 14, "google_adwords_paid_for_site_do_send": null, "tracking_first_ally_reg": 1464201921, "tracking_first_code_push": 1466791262, "invites_to_user": 9, "role": "Engineer", "job_function": "developer", "utm_medium": "", "tracking_first_workflow_in_live": 1464030833, "google_adwords_account_registered_do_send": null, "google_adwords_paid_for_site_sent": 1464041136, "firstname": "Dev", "invites_to_site": 7, "lastname": "User", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1466791288, "last-org-spinup": "none", "tracking_first_site_create": 1463780040, "initial_identity_name": null, "created_organization_name": "Test Agency", "guilty_of_abuse": null, "invites_to_org": 7, "tracking_first_site_upgrade": 1464031584, "dtl": "", "modified": 1463779130, "tracking_first_team_invite": 1464721435, "maxdevsites": 12, "verify": 1, "google_adwords_account_registered_sent": 1463779134, "organization": "Pantheon"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "id": "1fdf3bf6-50e3-42d8-ae56-fb4051481404", "preferred_zone": "onebox", "product_id": "ebd3ecfc-ff8d-4e3b-aead-eb4202045ce6", "created_by_user_id": "11111111-1111-1111-1111-111111111111", "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471984734, "instrument": null, "holder_type": "user", "php_version": "55", "attributes": {"label": "Behat Tests"}, "last_code_push": {"timestamp": "2016-08-23T20:39:04", "user_uuid": null}}, "tags": []}]' diff --git a/tests/fixtures/upstream-list-empty.yml b/tests/fixtures/upstream-list-empty.yml deleted file mode 100644 index 0018126d2..000000000 --- a/tests/fixtures/upstream-list-empty.yml +++ /dev/null @@ -1,132 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:42:32 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 7b230e30-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6","expires_at":1473813752,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:42:32 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 7bd2fd40-6413-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '' diff --git a/tests/fixtures/upstream-list.yml b/tests/fixtures/upstream-list.yml deleted file mode 100644 index 62f3ce430..000000000 --- a/tests/fixtures/upstream-list.yml +++ /dev/null @@ -1,132 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:42:32 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 7b230e30-6413-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6","expires_at":1473813752,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:42:32 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 7bd2fd40-6413-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/memberships/organizations?limit=100' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:08 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb51f850-788e-11e7-af0d-0f05c09e754b - 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: '[{"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "team_member", "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "reng-test", "change_service_url": "", "name": "Reng, Test", "email_domain": null, "org_logo_width": "", "org_logo_height": "", "base_domain": "reng.com", "billing_url": "", "terms_of_service": "", "org_logo": ""}, "id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365"}}, {"archived": false, "invited_by_id": "8562d806-78cb-458f-ad3b-c874447cadfd", "role": "developer", "id": "240b2573-0f40-49e1-a104-f19b466909cc", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "240b2573-0f40-49e1-a104-f19b466909cc", "user_id": "11111111-1111-1111-1111-111111111111", "admin": false, "organization": {"profile": {"machine_name": "aris-agency", "change_service_url": "", "name": "Ari''s Agency", "email_domain": null, "org_logo_width": 64, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "id": "240b2573-0f40-49e1-a104-f19b466909cc"}}, {"archived": false, "invited_by_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "role": "admin", "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "key": "11111111-1111-1111-1111-111111111111", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "user_id": "11111111-1111-1111-1111-111111111111", "admin": true, "organization": {"profile": {"machine_name": "the-upstreamers", "change_service_url": null, "name": "The Upstreamers", "email_domain": null, "org_logo_width": 85, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": null}, "id": "6d363fae-20cc-8d21-9d31-f28b14bf268b"}}]' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111/upstreams' - headers: - Host: onebox - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/1.4.1 (php_version=7.0.19&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50a4358a-6413-11e6-8753-bc764e11bdd3:YKWAKzAezJZmHkIAs6xBM' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 03 Aug 2017 21:00:09 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: bb8e8c20-788e-11e7-b735-03407f11bc02 - 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: '[{"machine_name": "advostarter-d8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Advostarter D8", "organization_id": "2d9c0d71-3bc6-4f3a-8517-d4de231ed69a", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "cbdeadf3-669f-4848-94f5-c2354f256de8"}, {"machine_name": "openatrium2", "description": "[Atrium](http://openatrium.com/) is an adaptable platform that allows you to confidently engage with your colleagues through convenient collaboration.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openatrium-icon.png", "label": "Atrium", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "31bc4254-be20-4e8d-afe6-6c585e58435a"}, {"machine_name": "backdrop", "description": "Backdrop is a fully-featured content management system that allows non-technical users to manage a wide-variety of content. It can be used to create blogs, forums, image galleries, social networks, intranets, and more.", "connection_mode_default": "git", "icon_url": "https://live-pantheon-assets.gotpantheon.com/files/product_icons/backdrop.png", "label": "Backdrop", "organization_id": "36b51e56-4969-4deb-a0e2-093bcc66862c", "framework": "backdrop", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "bf703821-4c18-45a1-88b8-3d9ec302273d"}, {"machine_name": "cuexpress", "description": "The Express install profile designed and supported by Developers to allow Site Owners to create great looking websites that meet a university''s accessibility, security, and branding policies. Site Owner are not Site Builders. Express users are not expected (or allowed) to create content types, fields, or views. While limiting, this approach makes it possible to maintain a large number of Express sites with a relatively small staff.", "connection_mode_default": "sftp", "icon_url": "https://www.cu.edu/sites/all/themes/cu/logo_small.png", "label": "CU Express 3", "organization_id": "63a252dd-5802-4e3e-ad99-02ddee681f34", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "6413825e-7c23-3549-bbf1-c797251bf6e9"}, {"machine_name": "civicrm_starterkit", "description": "[CiviCRM](http://civicrm.org/) is a web-based, open source, CRM geared toward meeting the needs of non-profit and civic-sector organizations. The starter kit integrates CiviCRM with Drupal.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/civicrm-icon.png", "label": "CiviCRM Starter Kit", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "3b754bc2-48f8-4388-b5b5-2631098d03de"}, {"machine_name": "kickstart", "description": "A software distribution for sites of any size that provides all the power and flexibility of Drupal Commerce, combined with components that accelerate creation and launch of an online store.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/commerce-kickstart-icon.png", "label": "Commerce Kickstart", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8a662dde-53d6-4fdb-8eac-eea9f5848d00"}, {"machine_name": "dkan", "description": "DKAN is a Drupal-based open data platform with a full suite of cataloging, publishing and visualization features that allows governments, nonprofits and universities to easily publish data to the public.", "connection_mode_default": "git", "icon_url": "https://cloud.githubusercontent.com/assets/512243/4800565/8f59086c-5e27-11e4-9f4f-5df0a5731282.png", "label": "DKAN", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "d7370d7e-46fb-4b10-b79f-942b5abf51de"}, {"machine_name": "demo-upstream", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Demo Upstream", "organization_id": "e106ce89-29d1-4c3f-962c-39d2ce73c97f", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "b1057113-272a-4509-b0b0-1362ec31d71c"}, {"machine_name": "drops-8-composer", "description": "Drops-8, managed by Composer", "connection_mode_default": "sftp", "icon_url": "https://getcomposer.org/img/logo-composer-transparent.png", "label": "Drops 8 Composer", "organization_id": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "35b0e365-a191-4c70-adbe-9d02d01343f3"}, {"machine_name": "drupal6", "description": "Drupal 6 sites run on Pantheon, but Drupal 6 reached end of life on February 24th, 2016.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal6-icon.jpg", "label": "Drupal 6", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "974b75c2-4ba7-49f8-8a54-3a45c07dfe02"}, {"machine_name": "drupal7", "description": "The most widely installed release of the powerful open source content management platform.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Drupal 7", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "21e1fada-199c-492b-97bd-0b36b53a9da0"}, {"machine_name": "drupal8", "description": "Launch, manage, and scale ambitious digital experiences\u2014with the flexibility to build great websites or push beyond the browser. Proudly open source.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal8-icon.png", "label": "Drupal 8", "organization_id": "", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "8a129104-9d37-4082-aaf8-e6f31154644e"}, {"machine_name": "drupal8-php7", "description": "*Swankiest* Upstream", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20isolated%20CMYK%2072.png", "label": "Drupal8 PHP", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "4fa4f7d1-e341-48f7-9594-4e7c21b9bb68"}, {"machine_name": "easteregg-kit", "description": "Easterseals Main Distribution - Developed and Managed by Molly Duggan Associates for exclusive use on Easterseals.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/files/drupal%208%20logo%20Stacked%20CMYK%20300.png", "label": "EasterEgg Kit", "organization_id": "c27b42df-c2cb-c2ae-d979-ddc254a8bc44", "framework": "drupal8", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "feb5fe01-bd8b-45dd-a753-e7d48b72b2e6"}, {"machine_name": "drupal-patterns", "description": "This is the Elephant Ventures profile distribution called Drupal Patterns.\r\nIt''s a responsive theme built for marketing websites.", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/ev-logo-square-sm.png", "label": "Elephant Ventures Drupal Patterns", "organization_id": "9813aeef-d889-4afc-9dfd-5a7433a853c9", "framework": "drupal", "is_public_spinup_allowed": true, "type": "product", "is_organization_association_forced": 0, "id": "0fce9338-bd6f-4b87-a489-e9928a027696"}, {"machine_name": "empty-7", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/drupal7-icon.jpg", "label": "Empty Drupal 7", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "drupal", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "f575e77a-ff49-4bab-a53c-dbf8f59247bc"}, {"machine_name": "empty", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "sftp", "icon_url": "https://www.drupal.org/sites/all/modules/drupalorg/drupalorg/images/d8.svg", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "core", "is_organization_association_forced": 0, "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, {"machine_name": "empty-wordpress", "description": "This is an empty repository that is, save for this explanatory text, devoid of all content. This upstream is appropriate to use in situations where a Pantheon site will be created through a build step (see the Terminus Build Tools Plugin, https://github.com/pantheon-systems/terminus-build-tools-plugin) and managed completely by Composer.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "Empty WordPress", "organization_id": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "53711c64-41eb-4f42-9ca9-a370f8e1e36f"}, {"machine_name": "fcpsschools", "description": "Fairfax County Public Schools install profile", "connection_mode_default": "sftp", "icon_url": "https://forumone.com/apple-touch-icon-76x76.png", "label": "Fairfax County Public Schools", "organization_id": "a7e4d66b-ab92-481b-ab77-626b8562544e", "framework": "drupal8", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 0, "id": "c28628b2-6b8f-4962-9838-69295c3fff68"}, {"machine_name": "inaccessible-upstream", "description": "This upstream requires credentials but it doesn''t have any. Using this upstream will trigger an error.", "connection_mode_default": "git", "icon_url": null, "label": "Inaccessible Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "1f3b2569-b4f6-43ca-a8ae-11c38d90778e"}, {"machine_name": "mindgrub-test", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Mindgrub Test", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "595003f1-e82e-4af8-ac18-65d09da2f6c5"}, {"machine_name": "my-demo-upstream", "description": "This is part of my *demo*.", "connection_mode_default": "sftp", "icon_url": null, "label": "My Demo Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "66665092-2d26-47c8-b7c3-a920a37fb805"}, {"machine_name": "my-upstream-for-demo", "description": "This is a SuperDemo upstream", "connection_mode_default": "sftp", "icon_url": null, "label": "My Upstream for Demo", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "745bfede-0557-42ea-a115-246e3b60e8e0"}, {"machine_name": "openoutreach", "description": "[Open Outreach](http://drupal.org/project/openoutreach) is a Drupal distribution written to provide grassroots, activist, and nonprofit groups with the web tools they need for effective public engagement.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openoutreach-icon.png", "label": "Open Outreach", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "4c17f505-05d0-4b79-b38a-0bc548405a10"}, {"machine_name": "openrestaurant", "description": "The [Open Restaurant distribution](http://open.restaurant/) has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog, events management and a responsive theme.\r\n", "connection_mode_default": "git", "icon_url": "https://www.drupal.org/files/styles/grid-3/public/project-images/open-restaurant-logo.png", "label": "Open Restaurant", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "6eb1ad36-afef-46d7-90d1-3a1bd4296863"}, {"machine_name": "openaid", "description": "[OpenAid](https://openaiddistro.org) is a turnkey website platform designed to help cause-driven organizations create cost-effective program-focused websites quickly.\r\n", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/files/product_icons/open-aid.png", "label": "OpenAid", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "2adff196-4672-44c9-af2a-4590963b90d8"}, {"machine_name": "openideal", "description": "[OpenideaL](http://www.openidealapp.com/) is an idea management system, for both public and commercial sectors. It is a powerful tool to analyze public opinion regarding products/services and identify trends.\r\n", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openideal-icon.png", "label": "OpenIdeaL", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "86112161-4cb2-410f-8bb1-8a1fb4f56dae"}, {"machine_name": "openpublic", "description": "[OpenPublic](http://openpublicapp.com/) provides a content management system specially designed for open government goals, without compromising accessibility, security or usability.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublic-icon.png", "label": "OpenPublic", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "b459145b-8771-4597-8b84-684a3d93dce0"}, {"machine_name": "openpublish", "description": "[OpenPublish](http://openpublishapp.com/) is a flexible and powerful CMS designed for the online news industry. It is built for flexibility, customization, and extension to help publishers focus on their content.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/openpublish-icon.png", "label": "OpenPublish", "organization_id": "b59dd35d-1ba4-4b6e-b904-966a58a834cd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "bc77fa2f-2235-4eec-8e6b-4d69d1cf5908"}, {"machine_name": "panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is a Panels powered distribution designed to be a base framework upon which to build other Drupal distributions, but will also work for general site building.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "8ad1efe0-0231-42ae-9520-c96241495b82"}, {"machine_name": "try_panopoly", "description": "[Panopoly](http://drupal.org/project/panopoly) is an enhanced version of Drupal with drag & drop page building tools, responsive layouts, a WYSIWYG, and [more.](\u201dhttp://drupal.org/node/1679838\u201d) See how awesome Drupal can be, right out of the box.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/panopoly-icon.png", "label": "Panopoly", "organization_id": "eace756e-33b1-471c-9f0c-2e51eca126bd", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "175cce4f-fa3f-4426-b1a6-e0fae9e19f2e"}, {"machine_name": "pivate-github-upstream", "description": "An upstream based on a private github repo", "connection_mode_default": "git", "icon_url": null, "label": "Pivate Github Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "wordpress", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "ba06828d-9507-4217-b7ed-7acb7f9812cf"}, {"machine_name": "plato_tipico", "description": "This is a a preconfigured distro with multi-language support for English & Spanish. Already comes with most of the necessary modules which will save you lots of time and research.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/plato-tipico-icon.png", "label": "Plato T\u00edpico", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "216f85b2-620b-470d-9597-f64ade76dc9a"}, {"machine_name": "protected-upstream", "description": "An upstream with credentials", "connection_mode_default": "git", "icon_url": "http://www.weblinsolutions.com/images/services/wordpress-page-img.png", "label": "Protected Upstream", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "c9f1311f-4cae-41ca-8276-cca230c25f37"}, {"machine_name": "pubsub-test-2", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Pubsub Test 2", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "3a821c48-63b1-4e29-b0f7-8d6a5cafb953"}, {"machine_name": "pushtape", "description": "Build better music websites with [Pushtape](http://drupal.org/project/pushtape), a Drupal distribution for musicians. Manage your music discography, create news updates, upload photos, post upcoming shows and more.", "connection_mode_default": "git", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/pushtape-icon.png", "label": "Pushtape", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "f141b5e0-a614-4294-a86c-6c24df9bf6c5"}, {"machine_name": "redhen_raiser", "description": "RedHen Raiser is a Drupal distribution for quickly launching peer-to-peer fundraising campaigns (also referred to as crowd fundraising, team fundraising, or viral fundraising campaigns). Individual and team fundraisers join campaigns with their own customizable pages and individual goals, all contributing to the overall campaign. RedHen Raiser features easy campaign creation for teams or individuals, goal progress widgets, campaign updates, automated start and end dates, single page donation forms, and it''s Commerce ready, just add your payment method and go!", "connection_mode_default": "sftp", "icon_url": "https://assets.getpantheon.com/files/product_icons/redhen-logo.png", "label": "RedHen Raiser", "organization_id": "", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "product", "is_organization_association_forced": 0, "id": "10d6937e-1dd2-4490-9950-11867ba43597"}, {"machine_name": "ronans-drops-8-sfz", "description": null, "connection_mode_default": "sftp", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "5de11c12-e5aa-4125-bc07-b0e14b1fd112"}, {"machine_name": "ronans-drops-8", "description": null, "connection_mode_default": "git", "icon_url": null, "label": "Ronan''s Drops 8", "organization_id": "6d363fae-20cc-8d21-9d31-f28b14bf268b", "framework": "drupal8", "is_public_spinup_allowed": false, "type": "custom", "is_organization_association_forced": false, "id": "2375d5c6-8dc2-467f-836b-2ddab05ebe28"}, {"machine_name": "rtupstream", "description": "This a test upstream created by Ruby", "connection_mode_default": "sftp", "icon_url": "http://screencast.com/t/WdHX3CRFAc", "label": "Ruby Test Upstream", "organization_id": "d30aa414-861c-4d8d-b147-9c8ef2ba3365", "framework": "wordpress", "is_public_spinup_allowed": 0, "type": "product", "is_organization_association_forced": 0, "id": "10d2f3a5-728a-460f-afa9-dbaee10eef3b"}, {"machine_name": "rutgers_wp_custom", "description": "Rutgers University WordPress Custom Distribution for School Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers School Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "e44da442-2b1e-639a-f790-edf7cb26c9a0"}, {"machine_name": "ruwwpucd", "description": "Rutgers University WordPress Custom Distribution for Unit/Organization Websites", "connection_mode_default": "git", "icon_url": "https://assets.getpantheon.com/sites/default/files/product_icons/RU.png", "label": "Rutgers Unit/Department Website - Wordpress", "organization_id": "c735dff0-7de4-42cb-953d-e8f7634c662c", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": 1, "id": "64408272-2d4b-614a-753b-334a2baf4263"}, {"machine_name": "sprowt-09022016", "description": "A Drupal 7 upstream for Pantheon", "connection_mode_default": "git", "icon_url": "http://www.coalmarch.com/sites/default/files/sprowt-logo.png", "label": "Sprowt", "organization_id": "08b99cd5-81a3-4b67-acc1-d5dba50390f8", "framework": "drupal", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "158e2876-13a4-427f-96cf-d29a3daa538b"}, {"machine_name": "static_html", "description": "This is an upstream for Pantheon that is used for static HTML/JS/CSS sites ", "connection_mode_default": "git", "icon_url": "https://image.freepik.com/free-icon/html-5-logo_318-79489.png", "label": "Static HTML", "organization_id": "f057733a-d6a0-4985-81fd-1174cd5da49b", "framework": "unknown", "is_public_spinup_allowed": 1, "type": "custom", "is_organization_association_forced": 0, "id": "de858279-cb87-4664-825c-fcb4c2928717"}, {"machine_name": "test-ps-digital", "description": "Test Custom Upstream created during the Jump Start", "connection_mode_default": "git", "icon_url": null, "label": "Test PS Digital", "organization_id": "977a8c1f-b420-499f-a675-af5dfadd55a6", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "8ed60b88-e3bb-4981-9701-777ee9e40435"}, {"machine_name": "wordpress", "description": "Open source software with powerful features, and the freedom to build anything you want.", "connection_mode_default": "sftp", "icon_url": "https://s3.amazonaws.com/content.getpantheon.com/product_images/wordpress-logo.png", "label": "WordPress", "organization_id": "", "framework": "wordpress", "is_public_spinup_allowed": 1, "type": "core", "is_organization_association_forced": 0, "id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, {"machine_name": "wordpress-class", "description": "Wordpress 2017 for the Exchange Students of Shasta College", "connection_mode_default": "sftp", "icon_url": null, "label": "Wordpress Class", "organization_id": "8badbb50-093d-41db-8dd1-6aa78f9a6113", "framework": "wordpress", "is_public_spinup_allowed": true, "type": "custom", "is_organization_association_forced": false, "id": "11111111-1111-1111-1111-111111111111"}]' diff --git a/tests/fixtures/upstream-update-list.yml b/tests/fixtures/upstream-update-list.yml deleted file mode 100644 index 18223826d..000000000 --- a/tests/fixtures/upstream-update-list.yml +++ /dev/null @@ -1,214 +0,0 @@ - -- - request: - method: POST - url: 'https://terminus.pantheon.io/api/authorize/machine-token' - headers: - Host: terminus.pantheon.io - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.12&script=bin/terminus)' - Content-type: application/json - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 16 Nov 2016 01:02:16 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 509353b0-ab98-11e6-b18f-03f79821d15b - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK","expires_at":1481677336,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.12&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 16 Nov 2016 01:02:17 GMT' - Content-Type: application/json - Content-Length: '3458' - Connection: keep-alive - X-Pantheon-Trace-Id: 514628f0-ab98-11e6-ac6a-bf6cb23c60d2 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/site-names/behat-tests' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.12&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 16 Nov 2016 01:02:18 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 522a2050-ab98-11e6-a05f-efde23aedfcd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.12&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 16 Nov 2016 01:02:21 GMT' - Content-Type: application/json - Content-Length: '80347' - Connection: keep-alive - X-Pantheon-Trace-Id: 536cd980-ab98-11e6-bca5-e3820513f11c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "cacheserver": 1, "created": 1433800575, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "last_code_push": {"timestamp": "2016-07-10T03:11:18", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "php_version": 70, "preferred_zone": "chios", "purchased_at": 1433800856, "service_level": "pro", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat-tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"base_domain": null, "change_management": true, "email_domain": null, "experimental_agency_organization": "no", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "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": "pantheon_one", "show_org_name_header": "yes", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "machine_name": "pantheon-employees", "has_multidev": false, "support_plan": "regular_support", "has_change_management": false, "profile": {"machine_name": "pantheon-employees", "change_service_url": null, "name": "Pantheon Employees", "email_domain": null, "org_logo_width": 128, "org_logo_height": 85, "base_domain": null, "billing_url": null, "terms_of_service": null, "org_logo": "data:image/png;base64,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"}, "settings": {"service_level": "pantheon_one", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "3a1d2042-cca3-432e-94c4-12a8f2b6a950", "failover_appserver": 0, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "behat-tests", "instrument": "b8b0a4de-9397-429b-933c-48769a9684cc", "allow_read_slaves": false, "indexserver": 1, "php_version": 70, "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "pro", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1433800856, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1433800575, "max_backups": 7, "holder_type": "organization", "number_allow_domains": 200, "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-07-10T03:11:18", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat-tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0c064ef0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://terminus.pantheon.io/api/sites/11111111-1111-1111-1111-111111111111/code-upstream-updates?base_branch=master' - headers: - Host: terminus.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/1.0.0-alpha (php_version=7.0.12&script=bin/terminus)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:50faa358-ab98-11e6-af5b-bc764e11bdd3:HYhm5tqPg0Z5ela5c5xVK' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 16 Nov 2016 01:02:21 GMT' - Content-Type: application/json - Content-Length: '1575' - Connection: keep-alive - X-Pantheon-Trace-Id: 541faec0-ab98-11e6-b18f-03f79821d15b - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"remote_head": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "ahead": 7, "update_log": {"cccdd26e7c511bebbd40b23e6756056f8eb7bd3d": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "cccdd26e7c511bebbd40b23e6756056f8eb7bd3d", "author": "Pantheon Automation", "labels": [], "datetime": "2016-09-07T19:06:47", "parents": ["99d9779d7924d37be5750954b774ec786a95e5e0"], "message": "Update to WordPress 4.6.1. For more information, see: https://wordpress.org/news/2016/09/wordpress-4-6-1-security-and-maintenance-release/\n", "email": "bot@getpantheon.com"}, "99d9779d7924d37be5750954b774ec786a95e5e0": {"gravitar_url": "https://secure.gravatar.com/avatar/3f4024df90770e003703e1c5e6d29bd6?s=40&d=https%3A%2F%2Fpantheon-content.s3.amazonaws.com%2Fblank_user.png", "hash": "99d9779d7924d37be5750954b774ec786a95e5e0", "author": "Pantheon Automation", "labels": [], "datetime": "2016-08-16T20:13:12", "parents": ["85431ad7eefbc602420812a1ab891965642c2183"], "message": "Update to WordPress 4.6. For more information, see: https://wordpress.org/news/2016/08/pepper/\n", "email": "bot@getpantheon.com"}}, "remote_branch": "refs/remotes/origin/master", "behind": 2, "dev": {"has_code": true, "is_up_to_date_with_upstream": false}, "live": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_code": true, "test": {"has_code": false, "is_up_to_date_with_upstream": false}, "has_remote_head": false, "remote_url": "https://github.com/pantheon-systems/WordPress"}' diff --git a/tests/fixtures/upstream-updates-no-code.yml b/tests/fixtures/upstream-updates-no-code.yml deleted file mode 100644 index 7acc20b86..000000000 --- a/tests/fixtures/upstream-updates-no-code.yml +++ /dev/null @@ -1,189 +0,0 @@ - -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:50 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 1d2b62f0-4470-11ea-946b-b11da63d1be1 - 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:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz","expires_at":1582925090,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:51 GMT' - Content-Type: application/json - Content-Length: '3793' - Connection: keep-alive - X-Pantheon-Trace-Id: 1d7e8c00-4470-11ea-89b4-170ab8dc2cd7 - 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: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1479332608, "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Sara McCutcheon", "pullFromLive": true, "invites_to_user": 10, "web_services_business": null, "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "invites_sent": 14, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "google_adwords_pushed_code_sent": 1428811242, "registration_context": null, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Sara", "invites_to_site": 13, "lastname": "McCutcheon", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "phone": "4155555555", "last-org-spinup": "none", "tracking_first_site_create": 1428723370, "initial_identity_name": null, "created_organization_name": "Agency Name", "guilty_of_abuse": null, "invites_to_org": 1, "tracking_first_site_upgrade": 1437784612, "seens": {"new-plans": true, "global-cdn": true, "partner-program": true, "terminus-1": true}, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1560893446, "utm_device": "", "maxdevsites": 12, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Self-Serve Upstreams", "default": false, "enabled": true, "visible": false, "optional": false, "id": "self-serve_upstreams"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "auth0|pn-11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io""}' -- - 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.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:52 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1e128ea0-4470-11ea-b7c3-a3e038b38233 - 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": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:52 GMT' - Content-Type: application/json - Content-Length: '5308' - Connection: keep-alive - X-Pantheon-Trace-Id: 1e41b4f0-4470-11ea-9a0e-6bd28f285b33 - 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": 1580410673, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "domain_lookup_rax": 1580410752, "drush_version": 8, "framework": "drupal8", "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "holder_type": "user", "last_code_push": {"timestamp": "2020-01-31T01:11:50", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}, "name": "behat-tests", "organization": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "php_version": "55", "plan_name": "Sandbox", "preferred_availability_zone": "us-central1-b", "preferred_zone": "us-central1", "service_level": "free", "upstream": {"repository_branch": "master", "machine_name": "empty", "product_id": "4c7176de-e079-eed1-154d-44d5a9945b65", "url": "https://github.com/pantheon-systems/empty.git", "label": "Empty Upstream", "organization_id": "812982f5-4a0c-4ddf-b847-267943be23fe", "framework": "drupal8", "branch": "master", "repository_url": "https://github.com/pantheon-systems/empty.git", "type": "core", "id": "4c7176de-e079-eed1-154d-44d5a9945b65"}, "label": "CI Empty Autopilot", "id": "11111111-1111-1111-1111-111111111111", "preferred_zone_label": "United States", "holder": {"profile": {"tracking_first_organization_invite": 1449093173, "invites_to_nonuser": 9, "seen_first_time_user_popover": true, "phone": "415.531.8446", "experiments": {"welcome_video": "not_shown"}, "full_name": "Greg Anderson", "pullFromLive": true, "web_services_business": false, "initial_identity_strategy": null, "invites_sent": 93, "google_adwords_paid_for_site_do_send": null, "verify": 1, "tracking_first_code_push": 1422477215, "invites_to_user": 84, "registration_context": null, "job_function": "developer", "tracking_first_workflow_in_live": 1421959071, "tracking_first_team_invite": 1434660321, "firstname": "Greg", "invites_to_site": 84, "lastname": "Anderson", "pda_campaign": null, "copyCodeUpdatePhp": true, "google_adwords_pushed_code_sent": 1423761165, "last-org-spinup": "e9527ac9-e2e0-460f-acf1-04f7e2f5a7ba", "tracking_first_site_create": 1421872714, "initial_identity_name": null, "created_organization_name": "Transient CI Sites", "copyCodeClearCache": true, "guilty_of_abuse": null, "invites_to_org": 9, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1442949394, "seens": {"partner-program": true, "cms-installation": true, "global-cdn": true, "annual-billing": true, "webops-dashboard": true, "skip-cms-installation": {"e66cf7e7-8ae0-4c6c-b54e-78b1e07024d0": true, "63793e8e-b6af-488e-a00e-16e93bd90b9c": true, "a0995b70-62da-4c28-9600-ea646d1a1285": true, "1967ede3-a9da-475d-bfb0-75598b8c02b1": true, "f1d0a2c1-cdd2-425c-8fb8-ba9d23fb5d5f": true, "8290b81c-623f-44dd-9d59-22f422fd511e": true, "96b46d27-2ef3-4729-bfeb-6ab8175f06b6": true, "ac2022fe-4223-4e80-a290-42a0db87a1d6": true, "a615df2a-4c16-4249-ab51-1b53f2ece290": true, "6c5321a3-6e73-4e68-b5a9-e64acbc65218": true, "e49b8b2c-c062-497f-8a4a-74b033656251": true, "732afb71-43d4-40b4-8b63-bfab34652d6c": true, "d4c9fd94-cd1a-497f-b009-2f784a50f2eb": true, "72e163bd-0054-4332-8bf8-219c50b78581": true, "76096370-5d2d-411f-8927-c73b15dd9e13": true, "df67f6f5-652e-4bff-9a9b-29590b740390": true, "b6d30ac2-0c7a-4b2d-bc0f-7b9c8ab4853f": true}}, "google_adwords_paid_for_site_sent": 1442949428, "modified": 1421871703.483313, "maxdevsites": 12, "google_adwords_account_registered_sent": 1421872118, "organization": "Pantheon Systems, Inc."}, "id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "email": "greg@getpantheon.com"}, "settings": {"allow_domains": false, "preferred_availability_zone": "us-central1-b", "site_id": "11111111-1111-1111-1111-111111111111", "stunnel": false, "min_backups": 0, "owner": "b3a42ba5-755d-42ca-9109-21bde32809d0", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": false, "created_by_user_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 1, "on_server_development": false, "drush_version": 8, "migration_method": null, "current_num_domains": 0, "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/empty.git", "product_id": "4c7176de-e079-eed1-154d-44d5a9945b65", "branch": "master"}, "ssl_enabled": null, "plan_name": "Sandbox", "fileserver": 1, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1580410752, "framework": "drupal8", "max_total_domains": 0, "key": "11111111-1111-1111-1111-111111111111", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 1, "pingdom_chance": 0, "preferred_pool": null, "holder_id": "b3a42ba5-755d-42ca-9109-21bde32809d0", "name": "behat-tests", "created": 1580410673, "max_backups": 0, "holder_type": "user", "replica_verification_strategy": "pt-heartbeat", "id": "11111111-1111-1111-1111-111111111111", "organization": "5ae1fa30-8cc4-4894-8ca9-d50628dcba17", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2020-01-31T01:11:50", "user_uuid": "b3a42ba5-755d-42ca-9109-21bde32809d0"}}, "base_domain": null, "attributes": {"label": "CI Empty Autopilot", "m3_ui": true}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:53 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1f24e900-4470-11ea-b504-5d642a609d5a - 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: '{"live": {"dns_zone": "pantheonsite.io", "environment_created": 1580410678, "randseed": "HN8JGE99048MC3B693BS93KXS6GTUZ0Y", "styx_cluster": "styx-fe3.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!live", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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}}, "test": {"dns_zone": "pantheonsite.io", "environment_created": 1580410676, "randseed": "VKE0OJTY3VXUNCZHH82VIBOUEZ1F0F4X", "styx_cluster": "styx-fe4.pantheon.io", "key": "11111111-1111-1111-1111-111111111111!test", "environment_variables": {}, "preferred_pool": null, "php_version": "55", "is_initialized": false, "php_major_minor_version": "5.5", "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": 1580410674, "environment_variables": {"enforce_https": "transitional", "php_version": 7.3}, "on_server_development": true, "php_version": "73", "quicksilver_configuration": {}, "randseed": "N7FCWGUJ4JYDH0H1WF3NO7IJ1HBM02KA", "styx_cluster": "styx-fe2.pantheon.io", "target_commit": "1202e9b6ddae9e5cc1f6027f9675c115445b6e85", "target_ref": "refs/heads/master", "key": "11111111-1111-1111-1111-111111111111!dev", "preferred_pool": null, "is_initialized": true, "php_major_minor_version": "7.3", "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: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/code-upstream-updates?base_branch=refs/heads/master' - headers: - Host: 'onebox' - Accept-Encoding: null - Content-type: application/json - User-Agent: 'Terminus/2.3.1-dev (php_version=7.3.13&script=bin/terminus)' - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:1d5d1ec6-4470-11ea-b970-42010a800117:c641mBnp0tiQvBfmIGSIz' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 31 Jan 2020 21:24:55 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 1fe9e6b0-4470-11ea-946b-b11da63d1be1 - 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 - age: '0' - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"has_code": false}' diff --git a/tests/fixtures/upstream-updates.yml b/tests/fixtures/upstream-updates.yml deleted file mode 100644 index 3ed0a7889..000000000 --- a/tests/fixtures/upstream-updates.yml +++ /dev/null @@ -1,216 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:fb71806e-6646-11e6-ba99-bc764e10b0ce:A38p4MHMn2PyLWv6A0Drp' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:38 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 0a528470-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm","expires_at":1474055798,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:39 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 0ae17e00-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:40 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0b6ea2d0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:40 GMT' - Content-Type: application/json - Content-Length: '3516' - Connection: keep-alive - X-Pantheon-Trace-Id: 0bb7e0d0-6647-11e6-ad69-5f4c0d99879d - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": false, "allow_indexserver": false, "created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}, "migration_completed_at": 1471632727, "migration_started_at": 1471634332, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 9, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 13, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 13, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": 1471634332, "migration_completed_at": 1471632727, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "cacheserver": 1, "allow_indexserver": false, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-19T19:05:16", "user_uuid": "11111111-1111-1111-1111-111111111111"}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": [{"id": "NewRelic", "label": "New Relic"}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:41 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0c064ef0-6647-11e6-a69e-9d129c74acd7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "styx_cluster": "styx-03.pantheon.io", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "drush_version": 8}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_2", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "cb3f7bbe08bbdc0d2f68e3fa66655c860ec6c24b", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/code-upstream-updates?base_branch=master' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:0a9ec146-6647-11e6-957b-bc764e10b0ce:Qy0LJnAlzPix9zH6FA0xm' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Fri, 19 Aug 2016 19:56:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 0cba35a0-6647-11e6-9aa2-6117a1834a25 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"remote_head": "99d9779d7924d37be5750954b774ec786a95e5e0", "ahead": 5, "update_log": {}, "remote_branch": "refs/remotes/origin/master", "behind": 0, "dev": {"has_code": true, "is_up_to_date_with_upstream": true}, "live": {"has_code": true, "is_up_to_date_with_upstream": true}, "has_code": true, "test": {"has_code": true, "is_up_to_date_with_upstream": true}, "has_remote_head": true, "remote_url": "https://github.com/pantheon-systems/WordPress"}' diff --git a/tests/fixtures/workflow-info-status.yml b/tests/fixtures/workflow-info-status.yml deleted file mode 100644 index 48796154e..000000000 --- a/tests/fixtures/workflow-info-status.yml +++ /dev/null @@ -1,291 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:40 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 56eee880-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU","expires_at":1473814120,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:41 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 57a0fa70-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58151900-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:42 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 584db530-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:42 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 589174f0-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111?hydrate=operations_with_logs' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - options: get - query: operations_with_logs - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:43 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 58ef9a80-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"final_task_id": "13603aee-63fe-11e6-a412-bc764e1022a9", "finished_at": 1471385449.214998, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385357.959725, "task_ids": ["13041480-63fe-11e6-a412-bc764e1022a9", "13140228-63fe-11e6-a412-bc764e1022a9", "1318008a-63fe-11e6-a412-bc764e1022a9", "131dc704-63fe-11e6-a412-bc764e1022a9", "1323fc14-63fe-11e6-a412-bc764e1022a9", "13253f70-63fe-11e6-a412-bc764e1022a9", "1326b760-63fe-11e6-a412-bc764e1022a9", "1353efe6-63fe-11e6-a412-bc764e1022a9", "13557366-63fe-11e6-a412-bc764e1022a9", "13564ef8-63fe-11e6-a412-bc764e1022a9", "1356de9a-63fe-11e6-a412-bc764e1022a9", "13579d44-63fe-11e6-a412-bc764e1022a9", "135e83d4-63fe-11e6-a412-bc764e1022a9", "13603aee-63fe-11e6-a412-bc764e1022a9"], "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 91.25527310371399, "created_at": 1471385357.320845, "environment": null, "total_time": 91.89415311813354, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 14, "has_operation_log_output": false, "number_of_tasks": 14, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:12fbbe70-63fe-11e6-a5ba-8f34aacee14f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:17.320845Z%27,mode:quick,to:%272016-08-16T22:15:49.214998Z%27))", "operations": [{"environment": "dev", "finished_at": 1471385358.094616, "queued_at": 1471385357.960106, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385357.960108, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13041480-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.325632, "queued_time": 2.1457672119140625e-06, "run_time": 0.1345078945159912, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385368.269143, "has_error": false, "queued_at": 1471385358.146483, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385358.377823, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": null, "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13140228-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.43002, "queued_time": 0.2313401699066162, "run_time": 9.891319990158081, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385384.276993, "has_error": false, "queued_at": 1471385357.483484, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385378.989287, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "pantheon", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "1318008a-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.456193, "queued_time": 21.505802869796753, "run_time": 5.287706136703491, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385384.929557, "has_error": false, "queued_at": 1471385358.168625, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385377.774672, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": null, "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "131dc704-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.494042, "queued_time": 19.60604691505432, "run_time": 7.1548850536346436, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385359.388552, "has_error": false, "queued_at": 1471385358.179108, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385358.350323, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "1323fc14-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.534722, "queued_time": 0.17121505737304688, "run_time": 1.038228988647461, "type": "platform", "description": "Apply any hostname changes"}, {"environment": "dev", "finished_at": 1471385385.115276, "queued_at": 1471385384.97795, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385384.977952, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13253f70-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.543, "queued_time": 1.9073486328125e-06, "run_time": 0.13732409477233887, "type": "platform", "description": "Clear edge cache"}, {"environment": "dev", "finished_at": 1471385385.236516, "queued_at": 1471385385.147691, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385385.147695, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "1326b760-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.552624, "queued_time": 4.0531158447265625e-06, "run_time": 0.0888209342956543, "type": "platform", "description": "Take Screenshot"}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385386.433419, "has_error": false, "queued_at": 1471385385.266433, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385385.388773, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "1353efe6-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.848983, "queued_time": 0.12233996391296387, "run_time": 1.0446460247039795, "type": "platform", "description": "Apply any hostname changes"}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385387.243565, "has_error": false, "queued_at": 1471385385.27837, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385385.401293, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": null, "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13557366-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.858903, "queued_time": 0.12292313575744629, "run_time": 1.8422720432281494, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385395.501123, "has_error": false, "queued_at": 1471385385.286848, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385390.147144, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "pantheon", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13564ef8-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.864524, "queued_time": 4.860296010971069, "run_time": 5.353978872299194, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385390.851019, "has_error": false, "queued_at": 1471385385.295057, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385385.401617, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": null, "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "1356de9a-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.868201, "queued_time": 0.10655999183654785, "run_time": 5.44940185546875, "type": "platform", "description": ""}, {"allow_concurrent": true, "environment": "dev", "finished_at": 1471385448.93122, "has_error": false, "queued_at": 1471385385.306118, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385441.231983, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": null, "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13579d44-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.873082, "queued_time": 55.925864934921265, "run_time": 7.699237108230591, "type": "platform", "description": ""}, {"environment": "dev", "finished_at": 1471385449.155408, "queued_at": 1471385448.961953, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385448.961956, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "135e83d4-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.918306, "queued_time": 3.0994415283203125e-06, "run_time": 0.1934518814086914, "type": "platform", "description": "Take Screenshot"}, {"environment": "dev", "finished_at": 1471385449.200753, "queued_at": 1471385449.192281, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385449.192284, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13603aee-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "phase": "finished", "created_at": 1471385357.929547, "queued_time": 3.0994415283203125e-06, "run_time": 0.008468866348266602, "type": "platform", "description": ""}]}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:44 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 599eed50-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"environment_id": "dev", "final_task_id": "fa5f27a6-6413-11e6-9e08-bc764e1141f9", "finished_at": 1471394772.685624, "params": {"converge": true, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "target_ref": "refs/heads/master"}, "reason": "", "result": "succeeded", "role": "super", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394764.938678, "task_ids": ["fa4fb604-6413-11e6-9e08-bc764e1141f9", "fa5da444-6413-11e6-9e08-bc764e1141f9", "fa5f27a6-6413-11e6-9e08-bc764e1141f9"], "trace_id": "fa4b9b64-6413-11e6-9e08-bc764e1141f9", "type": "sync_code", "user_id": null, "waiting_for_task_id": null, "id": "fa4e886a-6413-11e6-9e08-bc764e1141f9", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 7.746945858001709, "created_at": 1471394764.798577, "environment": "dev", "total_time": 7.887046813964844, "active_description": "Synced code on \"dev\"", "description": "Sync code on \"dev\"", "step": 3, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:fa4b9b64-6413-11e6-9e08-bc764e1141f9%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:04.798577Z%27,mode:quick,to:%272016-08-17T00:51:12.685624Z%27))", "user": null, "user_email": null, "final_task": {"environment": "dev", "finished_at": 1471394772.65194, "fn_name": "trigger_task", "params": {"environment": "dev", "url": "https://dev-behat-tests.pantheonsite.io", "target_filename": "dev/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471394772.410856, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394772.410859, "trace_id": "fa4b9b64-6413-11e6-9e08-bc764e1141f9", "user_id": null, "workflow_id": "fa4e886a-6413-11e6-9e08-bc764e1141f9", "id": "fa5f27a6-6413-11e6-9e08-bc764e1141f9", "key": "1471392000", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471394764.907511, "allow_concurrent": false, "run_time": 0.24108099937438965, "total_time": 7.744429111480713, "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:fa4b9b64-6413-11e6-9e08-bc764e1141f9%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:04.907511Z%27,mode:quick,to:%272016-08-17T00:51:12.651940Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:44.778094": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"environment_id": "dev", "final_task_id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "finished_at": 1471394765.265426, "params": {"message": "Removed README.md", "committer_name": "Dev User", "committer_email": "devuser@pantheon.io"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394761.483532, "task_ids": ["f84f1322-6413-11e6-a32d-bc764e10d7c2"], "trace_id": "f832bdd0-6413-11e6-9844-1524ed28772c", "type": "commit_and_push_on_server_changes", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f8447606-6413-11e6-a32d-bc764e10d7c2", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 3.7818939685821533, "created_at": 1471394761.377127, "environment": "dev", "total_time": 3.888298988342285, "active_description": "Committed code changes in \"dev\"", "description": "Commit code changes", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f832bdd0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:01.377127Z%27,mode:quick,to:%272016-08-17T00:51:05.265426Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"build": {"url": "job/commit_push_code/535/", "number": 535, "phase": "STARTED", "estimated_duration": 3217, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/535/"}, "environment": "dev", "finished_at": 1471394765.232824, "fn_name": "queue_jenkins_task", "has_error": false, "params": {"committer_email": "devuser@pantheon.io", "task_type": "commit_push_code", "job_id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "pantheon_environment": "dev", "site": "11111111-1111-1111-1111-111111111111", "host": "23.253.170.86", "branch": "master", "binding_id": "0bc33e0b7b37462cad40e081d5173721", "message": "Removed README.md", "committer_name": "Dev User"}, "queued_at": 1471394761.483857, "responses": [{"code": 201, "body": "Successfully queued commit_push_code", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394763.004356, "trace_id": "f832bdd0-6413-11e6-9844-1524ed28772c", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f8447606-6413-11e6-a32d-bc764e10d7c2", "id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "key": "1471392000", "queued_time": 1.5204989910125732, "host": "23.253.170.86", "phase": "finished", "created_at": 1471394761.446685, "allow_concurrent": false, "run_time": 2.228468179702759, "total_time": 3.7861390113830566, "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:f832bdd0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:01.446685Z%27,mode:quick,to:%272016-08-17T00:51:05.232824Z%27))", "type": "commit_push_code", "build_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/535/", "messages": {"2016-08-17T00:48:44.781811": {"message": "Successfully queued commit_push_code", "level": "INFO"}}}}, {"environment_id": "live", "final_task_id": "d8879fe6-6413-11e6-af1f-bc764e10b0ce", "finished_at": 1471394728.967946, "keep_forever": true, "params": {"clone_files": {"from_environment": "test"}, "annotation": "Create the Live environment", "clone_database": {"from_environment": "test", "wp_replace_siteurl": {"from_url": "://test-behat-tests.pantheonsite.io", "to_url": "://live-behat-tests.pantheonsite.io"}}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/tags/pantheon_live_1"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394708.195375, "task_ids": ["d8140dc4-6413-11e6-af1f-bc764e10b0ce", "d81580b4-6413-11e6-af1f-bc764e10b0ce", "d8170c5e-6413-11e6-af1f-bc764e10b0ce", "d819b710-6413-11e6-af1f-bc764e10b0ce", "d81b4e5e-6413-11e6-af1f-bc764e10b0ce", "d81d1446-6413-11e6-af1f-bc764e10b0ce", "d81f166a-6413-11e6-af1f-bc764e10b0ce", "d821351c-6413-11e6-af1f-bc764e10b0ce", "d822c8be-6413-11e6-af1f-bc764e10b0ce", "d8272f9e-6413-11e6-af1f-bc764e10b0ce", "d88333de-6413-11e6-af1f-bc764e10b0ce", "d8854e26-6413-11e6-af1f-bc764e10b0ce", "d8879fe6-6413-11e6-af1f-bc764e10b0ce"], "trace_id": "d800b4e0-6413-11e6-9844-1524ed28772c", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "d8054d66-6413-11e6-af1f-bc764e10b0ce", "key": "11111111-1111-1111-1111-111111111111", "phase": "finished", "queued_time": null, "run_time": 20.772571086883545, "created_at": 1471394707.276119, "environment": "live", "total_time": 21.691827058792114, "active_description": "Deployed code to \"live\", and cloned files from \"test\", and cloned database from \"test\"", "description": "Create environment \"live\"", "step": 13, "has_operation_log_output": false, "number_of_tasks": 13, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:d800b4e0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:40:07.276119Z%27,mode:quick,to:%272016-08-17T00:50:28.967946Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": 1471394728.948006, "fn_name": "trigger_task", "params": {"environment": "live", "url": "https://live-behat-tests.pantheonsite.io", "target_filename": "live/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471394728.453724, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394728.453727, "trace_id": "d800b4e0-6413-11e6-9844-1524ed28772c", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "d8054d66-6413-11e6-af1f-bc764e10b0ce", "id": "d8879fe6-6413-11e6-af1f-bc764e10b0ce", "key": "1471392000", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471394708.130199, "allow_concurrent": false, "run_time": 0.4942789077758789, "total_time": 20.81780695915222, "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:d800b4e0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:40:08.130199Z%27,mode:quick,to:%272016-08-17T00:50:28.948006Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:44.786108": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"environment_id": "test", "final_task_id": "c48df760-6413-11e6-8571-bc764e1022a9", "finished_at": 1471394697.411122, "keep_forever": true, "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the Test environment", "clone_database": {"from_environment": "dev", "wp_replace_siteurl": {"from_url": "://dev-behat-tests.pantheonsite.io", "to_url": "://test-behat-tests.pantheonsite.io"}}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/tags/pantheon_test_1"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394674.669719, "task_ids": ["c41d9092-6413-11e6-8571-bc764e1022a9", "c41ef3ce-6413-11e6-8571-bc764e1022a9", "c4213850-6413-11e6-8571-bc764e1022a9", "c4233e3e-6413-11e6-8571-bc764e1022a9", "c4260f4c-6413-11e6-8571-bc764e1022a9", "c4291d54-6413-11e6-8571-bc764e1022a9", "c42b2cc0-6413-11e6-8571-bc764e1022a9", "c4355d94-6413-11e6-8571-bc764e1022a9", "c48b602c-6413-11e6-8571-bc764e1022a9", "c48df760-6413-11e6-8571-bc764e1022a9"], "trace_id": "c407a390-6413-11e6-9844-1524ed28772c", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "c40da8c6-6413-11e6-8571-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "phase": "finished", "queued_time": null, "run_time": 22.741403102874756, "created_at": 1471394673.776455, "environment": "test", "total_time": 23.63466715812683, "active_description": "Deployed code to \"test\", and cloned files from \"dev\", and cloned database from \"dev\"", "description": "Create environment \"test\"", "step": 10, "has_operation_log_output": false, "number_of_tasks": 10, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:c407a390-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:39:33.776455Z%27,mode:quick,to:%272016-08-17T00:49:57.411122Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/210156/", "number": 210156, "phase": "STARTED", "estimated_duration": 9011, "duration": 0, "full_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/210156/"}, "environment": "test", "finished_at": 1471394697.37524, "fn_name": "queue_jenkins_task", "has_error": false, "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "c48df760-6413-11e6-8571-bc764e1022a9", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "queued_at": 1471394686.327339, "responses": [{"code": 201, "body": "Successfully queued converge_appserver_binding", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394686.668472, "trace_id": "c407a390-6413-11e6-9844-1524ed28772c", "user_id": null, "workflow_id": "c40da8c6-6413-11e6-8571-bc764e1022a9", "id": "c48df760-6413-11e6-8571-bc764e1022a9", "key": "1471392000", "queued_time": 0.34113311767578125, "host": "104.130.221.158", "phase": "finished", "created_at": 1471394674.617328, "run_time": 10.706768035888672, "total_time": 22.757912158966064, "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:c407a390-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:39:34.617328Z%27,mode:quick,to:%272016-08-17T00:49:57.375240Z%27))", "type": "converge_appserver_binding", "build_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/210156/", "messages": {"2016-08-17T00:48:44.790753": {"message": "Successfully queued converge_appserver_binding", "level": "INFO"}}}}, {"environment_id": "dev", "final_task_id": "18632b1e-63fe-11e6-8402-bc764e11bdd3", "finished_at": 1471385400.482023, "params": {"converge": true, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/heads/master"}, "reason": "", "result": "succeeded", "role": "super", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385366.363698, "task_ids": ["18582fb6-63fe-11e6-8402-bc764e11bdd3", "1861e36c-63fe-11e6-8402-bc764e11bdd3", "18632b1e-63fe-11e6-8402-bc764e11bdd3"], "trace_id": "1854b93a-63fe-11e6-8402-bc764e11bdd3", "type": "sync_code", "user_id": null, "waiting_for_task_id": null, "id": "18575c76-63fe-11e6-8402-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 34.118324995040894, "created_at": 1471385366.260031, "environment": "dev", "total_time": 34.22199201583862, "active_description": "Synced code on \"dev\"", "description": "Sync code on \"dev\"", "step": 3, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:1854b93a-63fe-11e6-8402-bc764e11bdd3%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:26.260031Z%27,mode:quick,to:%272016-08-16T22:15:00.482023Z%27))", "user": null, "user_email": null, "final_task": {"environment": "dev", "finished_at": 1471385400.440403, "fn_name": "trigger_task", "params": {"environment": "dev", "url": "https://dev-behat-tests.pantheonsite.io", "target_filename": "dev/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471385400.186234, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385400.186236, "trace_id": "1854b93a-63fe-11e6-8402-bc764e11bdd3", "user_id": null, "workflow_id": "18575c76-63fe-11e6-8402-bc764e11bdd3", "id": "18632b1e-63fe-11e6-8402-bc764e11bdd3", "key": "1471384800", "queued_time": 1.9073486328125e-06, "host": null, "phase": "finished", "created_at": 1471385366.337411, "allow_concurrent": false, "run_time": 0.2541670799255371, "total_time": 34.10299205780029, "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:1854b93a-63fe-11e6-8402-bc764e11bdd3%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:26.337411Z%27,mode:quick,to:%272016-08-16T22:15:00.440403Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:44.794525": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"final_task_id": "13603aee-63fe-11e6-a412-bc764e1022a9", "finished_at": 1471385449.214998, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385357.959725, "task_ids": ["13041480-63fe-11e6-a412-bc764e1022a9", "13140228-63fe-11e6-a412-bc764e1022a9", "1318008a-63fe-11e6-a412-bc764e1022a9", "131dc704-63fe-11e6-a412-bc764e1022a9", "1323fc14-63fe-11e6-a412-bc764e1022a9", "13253f70-63fe-11e6-a412-bc764e1022a9", "1326b760-63fe-11e6-a412-bc764e1022a9", "1353efe6-63fe-11e6-a412-bc764e1022a9", "13557366-63fe-11e6-a412-bc764e1022a9", "13564ef8-63fe-11e6-a412-bc764e1022a9", "1356de9a-63fe-11e6-a412-bc764e1022a9", "13579d44-63fe-11e6-a412-bc764e1022a9", "135e83d4-63fe-11e6-a412-bc764e1022a9", "13603aee-63fe-11e6-a412-bc764e1022a9"], "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 91.25527310371399, "created_at": 1471385357.320845, "environment": null, "total_time": 91.89415311813354, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 14, "has_operation_log_output": false, "number_of_tasks": 14, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:12fbbe70-63fe-11e6-a5ba-8f34aacee14f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:17.320845Z%27,mode:quick,to:%272016-08-16T22:15:49.214998Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "finished_at": 1471385449.200753, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "11111111-1111-1111-1111-111111111111", "environment_id": "dev"}, "queued_at": 1471385449.192281, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385449.192284, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "13603aee-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471385357.929547, "allow_concurrent": false, "run_time": 0.008468866348266602, "total_time": 91.27120590209961, "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:12fbbe70-63fe-11e6-a5ba-8f34aacee14f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:17.929547Z%27,mode:quick,to:%272016-08-16T22:15:49.200753Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-08-17T00:48:44.798171": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}]' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows/11111111-1111-1111-1111-111111111111?hydrate=operations_with_logs' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:575b22a2-6414-11e6-84c5-bc764e1141f9:XKULaIlISZayGquUMrAsU' - verify: '1' - method: get - absolute_url: '' - options: get - query: operations_with_logs - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Thu, 13 Oct 2016 10:34:55 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: ae07e6f0-9130-11e6-ab30-49c5a55934e7 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"environment_id": "dev", "final_task_id": "082761b8-912e-11e6-bbf1-bc764e1141f9", "finished_at": 1476353773.100033, "params": {"framework_cache": true}, "quicksilver_post_tasks": ["082761b8-912e-11e6-bbf1-bc764e1141f9"], "reason": "", "result": "succeeded", "role": "super", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476353757.434197, "task_ids": ["0831f4ac-912e-11e6-bbf1-bc764e1141f9", "08339cbc-912e-11e6-bbf1-bc764e1141f9", "08352a3c-912e-11e6-bbf1-bc764e1141f9", "082761b8-912e-11e6-bbf1-bc764e1141f9"], "trace_id": "0819a3c0-912e-11e6-830c-15b191d9b793", "type": "clear_cache", "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "waiting_for_task_id": null, "id": "11111111-1111-1111-1111-111111111111", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 15.665836095809937, "created_at": 1476353757.258547, "environment": "dev", "total_time": 15.841485977172852, "active_description": "Cleared caches for \"dev\"", "description": "Clear cache for \"dev\"", "step": 4, "has_operation_log_output": true, "number_of_tasks": 4, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:0819a3c0-912e-11e6-830c-15b191d9b793%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-10-13T10:10:57.258547Z%27,mode:quick,to:%272016-10-13T10:21:13.100033Z%27))", "operations": [{"environment": "dev", "finished_at": 1476353770.396201, "has_error": false, "queued_at": 1476353757.434514, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476353759.83308, "trace_id": "0819a3c0-912e-11e6-830c-15b191d9b793", "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "0831f4ac-912e-11e6-bbf1-bc764e1141f9", "key": "1476352800", "phase": "finished", "created_at": 1476353757.339358, "queued_time": 2.3985660076141357, "run_time": 10.56312084197998, "type": "platform", "description": "Clear CMS cache"}, {"environment": "dev", "finished_at": 1476353770.93724, "queued_at": 1476353770.433629, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476353770.433636, "trace_id": "0819a3c0-912e-11e6-830c-15b191d9b793", "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "08339cbc-912e-11e6-bbf1-bc764e1141f9", "key": "1476352800", "phase": "finished", "created_at": 1476353757.350214, "queued_time": 6.9141387939453125e-06, "run_time": 0.5036039352416992, "type": "platform", "description": "Clear edge cache"}, {"environment": "dev", "finished_at": 1476353771.107137, "queued_at": 1476353771.011401, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476353771.011403, "trace_id": "0819a3c0-912e-11e6-830c-15b191d9b793", "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "08352a3c-912e-11e6-bbf1-bc764e1141f9", "key": "1476352800", "phase": "finished", "created_at": 1476353757.36039, "queued_time": 2.1457672119140625e-06, "run_time": 0.0957338809967041, "type": "platform", "description": "Take Screenshot"}, {"description": "Simple Quicksilver Example", "environment": "dev", "finished_at": 1476353773.077799, "host": "https://swf.us-east-1.amazonaws.com", "queued_at": 1476353771.15173, "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1476353771.0, "swf_run_id": "22c4GUmkmENXp3+vRMggU+lA4Krg1N5MFJ2HXYvPu/kFk=", "swf_workflow_id": "082761b8-912e-11e6-bbf1-bc764e1141f9", "trace_id": "0819a3c0-912e-11e6-830c-15b191d9b793", "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "workflow_id": "11111111-1111-1111-1111-111111111111", "id": "082761b8-912e-11e6-bbf1-bc764e1141f9", "key": "1476352800", "phase": "finished", "created_at": 1476353757.27006, "queued_time": -0.15173006057739258, "run_time": 2.077799081802368, "type": "quicksilver", "log_output": "Quicksilver Debugging Output\n\n\n========= START PAYLOAD ===========\nArray\n(\n [wf_type] => clear_cache\n [user_id] => 920f16d3-8272-4822-9811-1d5d3e125e6f\n [qs_description] => Simple Quicksilver Example\n [user_lastname] => User\n [user_fullname] => Dev User\n [site_id] => 11111111-1111-1111-1111-111111111111\n [user_role] => super\n [trace_id] => 0819a3c0-912e-11e6-830c-15b191d9b793\n [environment] => dev\n [wf_description] => Clear cache for \"dev\"\n [user_firstname] => Dev\n [user_email] => devuser@pantheon.io\n [stage] => after\n)\n\n========== END PAYLOAD ============\n\n------- START ENVIRONMENT ---------\nArray\n(\n [FRAMEWORK] => drupal8\n [DOCROOT] => /\n [FILEMOUNT] => sites/default/files\n [DRUPAL_HASH_SALT] => [REDACTED]\n [drush_version] => 8\n [php_version] => 7.0\n [CACHE_HOST] => 10.223.224.176\n [CACHE_PORT] => 11487\n [CACHE_PASSWORD] => [REDACTED]\n [DB_HOST] => 10.223.176.98\n [DB_PORT] => 17198\n [DB_USER] => pantheon\n [DB_PASSWORD] => [REDACTED]\n [DB_NAME] => pantheon\n [PANTHEON_INDEX_HOST] => 10.223.96.36\n [PANTHEON_INDEX_PORT] => 449\n [PANTHEON_SITE] => 11111111-1111-1111-1111-111111111111\n [PANTHEON_SITE_NAME] => drupal-vcr\n [PANTHEON_ENVIRONMENT] => dev\n [PANTHEON_INFRASTRUCTURE_ENVIRONMENT] => live\n [PATH] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12/bin:/usr/local/bin:/bin:/usr/bin:/srv/bin\n [HOME] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12\n [PHPRC] => /srv/bindings/14e47b3fa7f84f21bb7ca0bda40dee12/php.ini\n)\n\n-------- END ENVIRONMENT ----------\n"}]}' diff --git a/tests/fixtures/workflow-list-empty.yml b/tests/fixtures/workflow-list-empty.yml deleted file mode 100644 index 0d1823083..000000000 --- a/tests/fixtures/workflow-list-empty.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:36 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 5473d660-6414-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg","expires_at":1473814116,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:37 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 55191710-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:37 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 559217a0-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:38 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 55cb01f0-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5615eda0-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5675e7f0-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '' diff --git a/tests/fixtures/workflow-list.yml b/tests/fixtures/workflow-list.yml deleted file mode 100644 index 652a22841..000000000 --- a/tests/fixtures/workflow-list.yml +++ /dev/null @@ -1,217 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:7b9270e0-6413-11e6-a988-bc764e11bdd3:qWLwcZ2Dcl60hkYeyWIS6' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:36 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: 5473d660-6414-11e6-bbc2-dbde761b3977 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg","expires_at":1473814116,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:37 GMT' - Content-Type: application/json - Content-Length: '3327' - Connection: keep-alive - X-Pantheon-Trace-Id: 55191710-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "feature_flags": [{"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "dev_sites_count": 2, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:37 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 559217a0-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:38 GMT' - Content-Type: application/json - Content-Length: '3204' - Connection: keep-alive - X-Pantheon-Trace-Id: 55cb01f0-6414-11e6-9844-1524ed28772c - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"created": 1471385341, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "11111111-1111-1111-1111-111111111111", "holder_type": "user", "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}, "name": "behat-tests", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "service_level": "free", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat tests", "id": "11111111-1111-1111-1111-111111111111", "holder": {"profile": {"utm_term": "", "invites_to_nonuser": 4, "seen_first_time_user_popover": true, "utm_content": "/", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "pullFromLive": false, "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "pantheon.io (organic)", "tracking_first_site_create": 1428723370, "verify": "037eadb020d51ccddba9e06a64908c98", "tracking_first_code_push": 1428811227, "google_adwords_account_registered_sent": 1428707350, "invites_to_user": 8, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1428811293, "tracking_first_team_invite": 1436464837, "firstname": "Dev", "invites_to_site": 12, "lastname": "User", "pda_campaign": null, "utm_source": "https://www.bing.com/search?setmkt=en-US&q=pantheon+san+francisco", "google_adwords_pushed_code_sent": 1428811242, "last-org-spinup": "none", "web_services_business": null, "initial_identity_name": null, "guilty_of_abuse": null, "invites_sent": 12, "tracking_first_site_upgrade": 1437784612, "google_adwords_paid_for_site_sent": 1438018300, "modified": 1458174494, "maxdevsites": 2, "lead_type": "", "organization": " Pantheon Systems, Inc"}, "id": "11111111-1111-1111-1111-111111111111", "email": "devuser@pantheon.io"}, "settings": {"allow_domains": false, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "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, "cacheserver": 1, "support_plan": "regular_support", "on_server_development": false, "drush_version": 5, "label": "behat tests", "appserver": 1, "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "ssl_enabled": null, "min_backups": 0, "service_level": "free", "dedicated_ip": null, "dbserver": 1, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "guilty_of_abuse": null, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "11111111-1111-1111-1111-111111111111", "name": "behat-tests", "created": 1471385341, "max_backups": 0, "holder_type": "user", "number_allow_domains": 0, "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-08-17T00:46:04", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:38 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5615eda0-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 1, "diffstat": {}, "on_server_development": true, "environment_created": 1471385341, "dns_zone": "pantheonsite.io", "randseed": "DAWMHE2LTF12P5H2DY3URABPX8N16US9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1471385344, "dns_zone": "pantheonsite.io", "randseed": "2768L88WYTOBH0MIQPOB6KY42C3L4WZI", "target_ref": "refs/tags/pantheon_test_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1471385345, "dns_zone": "pantheonsite.io", "randseed": "0G8KI1O49B4E19HYWI5YUYREYHP0A4TJ", "target_ref": "refs/tags/pantheon_live_1", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: GET - url: 'https://onebox/api/sites/11111111-1111-1111-1111-111111111111/workflows' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.11.4 (php_version=7.0.6&script=boot-fs.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:54cfb82c-6414-11e6-a003-bc764e10b0ce:0pX6gN0qONFurqnfpcCVg' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Wed, 17 Aug 2016 00:48:39 GMT' - Content-Type: application/json - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 5675e7f0-6414-11e6-9353-a5a93b6ed928 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '[{"environment_id": "dev", "final_task_id": "fa5f27a6-6413-11e6-9e08-bc764e1141f9", "finished_at": 1471394772.685624, "params": {"converge": true, "target_commit": "41710101cf34dd3980c7534a2a1678208303fe19", "target_ref": "refs/heads/master"}, "reason": "", "result": "succeeded", "role": "super", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394764.938678, "task_ids": ["fa4fb604-6413-11e6-9e08-bc764e1141f9", "fa5da444-6413-11e6-9e08-bc764e1141f9", "fa5f27a6-6413-11e6-9e08-bc764e1141f9"], "trace_id": "fa4b9b64-6413-11e6-9e08-bc764e1141f9", "type": "sync_code", "user_id": null, "waiting_for_task_id": null, "id": "fa4e886a-6413-11e6-9e08-bc764e1141f9", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 7.746945858001709, "created_at": 1471394764.798577, "environment": "dev", "total_time": 7.887046813964844, "active_description": "Synced code on \"dev\"", "description": "Sync code on \"dev\"", "step": 3, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:fa4b9b64-6413-11e6-9e08-bc764e1141f9%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:04.798577Z%27,mode:quick,to:%272016-08-17T00:51:12.685624Z%27))", "user": null, "user_email": null, "final_task": {"environment": "dev", "finished_at": 1471394772.65194, "fn_name": "trigger_task", "params": {"environment": "dev", "url": "https://dev-behat-tests.pantheonsite.io", "target_filename": "dev/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471394772.410856, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394772.410859, "trace_id": "fa4b9b64-6413-11e6-9e08-bc764e1141f9", "user_id": null, "workflow_id": "fa4e886a-6413-11e6-9e08-bc764e1141f9", "id": "fa5f27a6-6413-11e6-9e08-bc764e1141f9", "key": "1471392000", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471394764.907511, "allow_concurrent": false, "run_time": 0.24108099937438965, "total_time": 7.744429111480713, "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:fa4b9b64-6413-11e6-9e08-bc764e1141f9%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:04.907511Z%27,mode:quick,to:%272016-08-17T00:51:12.651940Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:39.456970": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"environment_id": "dev", "final_task_id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "finished_at": 1471394765.265426, "params": {"message": "Removed README.md", "committer_name": "Dev User", "committer_email": "devuser@pantheon.io"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394761.483532, "task_ids": ["f84f1322-6413-11e6-a32d-bc764e10d7c2"], "trace_id": "f832bdd0-6413-11e6-9844-1524ed28772c", "type": "commit_and_push_on_server_changes", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "f8447606-6413-11e6-a32d-bc764e10d7c2", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 3.7818939685821533, "created_at": 1471394761.377127, "environment": "dev", "total_time": 3.888298988342285, "active_description": "Committed code changes in \"dev\"", "description": "Commit code changes", "step": 1, "has_operation_log_output": false, "number_of_tasks": 1, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:f832bdd0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:01.377127Z%27,mode:quick,to:%272016-08-17T00:51:05.265426Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"build": {"url": "job/commit_push_code/535/", "number": 535, "phase": "STARTED", "estimated_duration": 3217, "duration": 0, "full_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/535/"}, "environment": "dev", "finished_at": 1471394765.232824, "fn_name": "queue_jenkins_task", "has_error": false, "params": {"committer_email": "devuser@pantheon.io", "task_type": "commit_push_code", "job_id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "pantheon_environment": "dev", "site": "11111111-1111-1111-1111-111111111111", "host": "23.253.170.86", "branch": "master", "binding_id": "0bc33e0b7b37462cad40e081d5173721", "message": "Removed README.md", "committer_name": "Dev User"}, "queued_at": 1471394761.483857, "responses": [{"code": 201, "body": "Successfully queued commit_push_code", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394763.004356, "trace_id": "f832bdd0-6413-11e6-9844-1524ed28772c", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "f8447606-6413-11e6-a32d-bc764e10d7c2", "id": "f84f1322-6413-11e6-a32d-bc764e10d7c2", "key": "1471392000", "queued_time": 1.5204989910125732, "host": "23.253.170.86", "phase": "finished", "created_at": 1471394761.446685, "allow_concurrent": false, "run_time": 2.228468179702759, "total_time": 3.7861390113830566, "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:f832bdd0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:41:01.446685Z%27,mode:quick,to:%272016-08-17T00:51:05.232824Z%27))", "type": "commit_push_code", "build_url": "https://23.253.170.86:8090/jenkins/job/commit_push_code/535/", "messages": {"2016-08-17T00:48:39.460837": {"message": "Successfully queued commit_push_code", "level": "INFO"}}}}, {"environment_id": "live", "final_task_id": "d8879fe6-6413-11e6-af1f-bc764e10b0ce", "finished_at": 1471394728.967946, "keep_forever": true, "params": {"clone_files": {"from_environment": "test"}, "annotation": "Create the Live environment", "clone_database": {"from_environment": "test", "wp_replace_siteurl": {"from_url": "://test-behat-tests.pantheonsite.io", "to_url": "://live-behat-tests.pantheonsite.io"}}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/tags/pantheon_live_1"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394708.195375, "task_ids": ["d8140dc4-6413-11e6-af1f-bc764e10b0ce", "d81580b4-6413-11e6-af1f-bc764e10b0ce", "d8170c5e-6413-11e6-af1f-bc764e10b0ce", "d819b710-6413-11e6-af1f-bc764e10b0ce", "d81b4e5e-6413-11e6-af1f-bc764e10b0ce", "d81d1446-6413-11e6-af1f-bc764e10b0ce", "d81f166a-6413-11e6-af1f-bc764e10b0ce", "d821351c-6413-11e6-af1f-bc764e10b0ce", "d822c8be-6413-11e6-af1f-bc764e10b0ce", "d8272f9e-6413-11e6-af1f-bc764e10b0ce", "d88333de-6413-11e6-af1f-bc764e10b0ce", "d8854e26-6413-11e6-af1f-bc764e10b0ce", "d8879fe6-6413-11e6-af1f-bc764e10b0ce"], "trace_id": "d800b4e0-6413-11e6-9844-1524ed28772c", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "d8054d66-6413-11e6-af1f-bc764e10b0ce", "key": "11111111-1111-1111-1111-111111111111", "phase": "finished", "queued_time": null, "run_time": 20.772571086883545, "created_at": 1471394707.276119, "environment": "live", "total_time": 21.691827058792114, "active_description": "Deployed code to \"live\", and cloned files from \"test\", and cloned database from \"test\"", "description": "Create environment \"live\"", "step": 13, "has_operation_log_output": false, "number_of_tasks": 13, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:d800b4e0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:40:07.276119Z%27,mode:quick,to:%272016-08-17T00:50:28.967946Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": 1471394728.948006, "fn_name": "trigger_task", "params": {"environment": "live", "url": "https://live-behat-tests.pantheonsite.io", "target_filename": "live/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471394728.453724, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394728.453727, "trace_id": "d800b4e0-6413-11e6-9844-1524ed28772c", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "d8054d66-6413-11e6-af1f-bc764e10b0ce", "id": "d8879fe6-6413-11e6-af1f-bc764e10b0ce", "key": "1471392000", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471394708.130199, "allow_concurrent": false, "run_time": 0.4942789077758789, "total_time": 20.81780695915222, "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:d800b4e0-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:40:08.130199Z%27,mode:quick,to:%272016-08-17T00:50:28.948006Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:39.465042": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"environment_id": "test", "final_task_id": "c48df760-6413-11e6-8571-bc764e1022a9", "finished_at": 1471394697.411122, "keep_forever": true, "params": {"clone_files": {"from_environment": "dev"}, "annotation": "Create the Test environment", "clone_database": {"from_environment": "dev", "wp_replace_siteurl": {"from_url": "://dev-behat-tests.pantheonsite.io", "to_url": "://test-behat-tests.pantheonsite.io"}}, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/tags/pantheon_test_1"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394674.669719, "task_ids": ["c41d9092-6413-11e6-8571-bc764e1022a9", "c41ef3ce-6413-11e6-8571-bc764e1022a9", "c4213850-6413-11e6-8571-bc764e1022a9", "c4233e3e-6413-11e6-8571-bc764e1022a9", "c4260f4c-6413-11e6-8571-bc764e1022a9", "c4291d54-6413-11e6-8571-bc764e1022a9", "c42b2cc0-6413-11e6-8571-bc764e1022a9", "c4355d94-6413-11e6-8571-bc764e1022a9", "c48b602c-6413-11e6-8571-bc764e1022a9", "c48df760-6413-11e6-8571-bc764e1022a9"], "trace_id": "c407a390-6413-11e6-9844-1524ed28772c", "type": "create_environment", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "c40da8c6-6413-11e6-8571-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "phase": "finished", "queued_time": null, "run_time": 22.741403102874756, "created_at": 1471394673.776455, "environment": "test", "total_time": 23.63466715812683, "active_description": "Deployed code to \"test\", and cloned files from \"dev\", and cloned database from \"dev\"", "description": "Create environment \"test\"", "step": 10, "has_operation_log_output": false, "number_of_tasks": 10, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:c407a390-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:39:33.776455Z%27,mode:quick,to:%272016-08-17T00:49:57.411122Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"allow_concurrent": true, "build": {"url": "job/chef_solo_bindings/210156/", "number": 210156, "phase": "STARTED", "estimated_duration": 9011, "duration": 0, "full_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/210156/"}, "environment": "test", "finished_at": 1471394697.37524, "fn_name": "queue_jenkins_task", "has_error": false, "params": {"host": "104.130.221.158", "task_type": "converge_appserver_binding", "job_id": "c48df760-6413-11e6-8571-bc764e1022a9", "binding_id": "34bc64f2b779461d805fcbb8675866c8"}, "queued_at": 1471394686.327339, "responses": [{"code": 201, "body": "Successfully queued converge_appserver_binding", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471394686.668472, "trace_id": "c407a390-6413-11e6-9844-1524ed28772c", "user_id": null, "workflow_id": "c40da8c6-6413-11e6-8571-bc764e1022a9", "id": "c48df760-6413-11e6-8571-bc764e1022a9", "key": "1471392000", "queued_time": 0.34113311767578125, "host": "104.130.221.158", "phase": "finished", "created_at": 1471394674.617328, "run_time": 10.706768035888672, "total_time": 22.757912158966064, "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:c407a390-6413-11e6-9844-1524ed28772c%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-17T00:39:34.617328Z%27,mode:quick,to:%272016-08-17T00:49:57.375240Z%27))", "type": "converge_appserver_binding", "build_url": "https://104.130.221.158:8090/jenkins/job/chef_solo_bindings/210156/", "messages": {"2016-08-17T00:48:39.468912": {"message": "Successfully queued converge_appserver_binding", "level": "INFO"}}}}, {"environment_id": "dev", "final_task_id": "18632b1e-63fe-11e6-8402-bc764e11bdd3", "finished_at": 1471385400.482023, "params": {"converge": true, "target_commit": "1fdf194d3d7a0c930a4f118e1398412765320328", "target_ref": "refs/heads/master"}, "reason": "", "result": "succeeded", "role": "super", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385366.363698, "task_ids": ["18582fb6-63fe-11e6-8402-bc764e11bdd3", "1861e36c-63fe-11e6-8402-bc764e11bdd3", "18632b1e-63fe-11e6-8402-bc764e11bdd3"], "trace_id": "1854b93a-63fe-11e6-8402-bc764e11bdd3", "type": "sync_code", "user_id": null, "waiting_for_task_id": null, "id": "18575c76-63fe-11e6-8402-bc764e11bdd3", "key": "11111111-1111-1111-1111-111111111111", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 34.118324995040894, "created_at": 1471385366.260031, "environment": "dev", "total_time": 34.22199201583862, "active_description": "Synced code on \"dev\"", "description": "Sync code on \"dev\"", "step": 3, "has_operation_log_output": false, "number_of_tasks": 3, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:1854b93a-63fe-11e6-8402-bc764e11bdd3%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:26.260031Z%27,mode:quick,to:%272016-08-16T22:15:00.482023Z%27))", "user": null, "user_email": null, "final_task": {"environment": "dev", "finished_at": 1471385400.440403, "fn_name": "trigger_task", "params": {"environment": "dev", "url": "https://dev-behat-tests.pantheonsite.io", "target_filename": "dev/11111111-1111-1111-1111-111111111111.jpg", "task_type": "take_screenshot", "site_id": "11111111-1111-1111-1111-111111111111"}, "queued_at": 1471385400.186234, "responses": [{"code": 200, "body": "Published take screenshot message: True", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385400.186236, "trace_id": "1854b93a-63fe-11e6-8402-bc764e11bdd3", "user_id": null, "workflow_id": "18575c76-63fe-11e6-8402-bc764e11bdd3", "id": "18632b1e-63fe-11e6-8402-bc764e11bdd3", "key": "1471384800", "queued_time": 1.9073486328125e-06, "host": null, "phase": "finished", "created_at": 1471385366.337411, "allow_concurrent": false, "run_time": 0.2541670799255371, "total_time": 34.10299205780029, "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:1854b93a-63fe-11e6-8402-bc764e11bdd3%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:26.337411Z%27,mode:quick,to:%272016-08-16T22:15:00.440403Z%27))", "type": "take_screenshot", "build_url": null, "messages": {"2016-08-17T00:48:39.472536": {"message": "Published take screenshot message: True", "level": "INFO"}}}}, {"final_task_id": "13603aee-63fe-11e6-a412-bc764e1022a9", "finished_at": 1471385449.214998, "params": {"product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385357.959725, "task_ids": ["13041480-63fe-11e6-a412-bc764e1022a9", "13140228-63fe-11e6-a412-bc764e1022a9", "1318008a-63fe-11e6-a412-bc764e1022a9", "131dc704-63fe-11e6-a412-bc764e1022a9", "1323fc14-63fe-11e6-a412-bc764e1022a9", "13253f70-63fe-11e6-a412-bc764e1022a9", "1326b760-63fe-11e6-a412-bc764e1022a9", "1353efe6-63fe-11e6-a412-bc764e1022a9", "13557366-63fe-11e6-a412-bc764e1022a9", "13564ef8-63fe-11e6-a412-bc764e1022a9", "1356de9a-63fe-11e6-a412-bc764e1022a9", "13579d44-63fe-11e6-a412-bc764e1022a9", "135e83d4-63fe-11e6-a412-bc764e1022a9", "13603aee-63fe-11e6-a412-bc764e1022a9"], "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "type": "deploy_product", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "13035982-63fe-11e6-a412-bc764e1022a9", "key": "11111111-1111-1111-1111-111111111111", "environment_id": null, "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 91.25527310371399, "created_at": 1471385357.320845, "environment": null, "total_time": 91.89415311813354, "active_description": "Deployed CMS", "description": "Deploy a CMS (Drupal or Wordpress)", "step": 14, "has_operation_log_output": false, "number_of_tasks": 14, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:12fbbe70-63fe-11e6-a5ba-8f34aacee14f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:17.320845Z%27,mode:quick,to:%272016-08-16T22:15:49.214998Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1428707345, "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": "dev", "finished_at": 1471385449.200753, "fn_name": "trigger_task", "params": {"wf_type": "deploy_product", "task_type": "add_quicksilver_tasks", "site_id": "11111111-1111-1111-1111-111111111111", "environment_id": "dev"}, "queued_at": 1471385449.192281, "responses": [{"code": 200, "body": "No Quicksilver tasks to add", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "11111111-1111-1111-1111-111111111111", "started_at": 1471385449.192284, "trace_id": "12fbbe70-63fe-11e6-a5ba-8f34aacee14f", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "13035982-63fe-11e6-a412-bc764e1022a9", "id": "13603aee-63fe-11e6-a412-bc764e1022a9", "key": "1471384800", "queued_time": 3.0994415283203125e-06, "host": null, "phase": "finished", "created_at": 1471385357.929547, "allow_concurrent": false, "run_time": 0.008468866348266602, "total_time": 91.27120590209961, "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:12fbbe70-63fe-11e6-a5ba-8f34aacee14f%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272016-08-16T22:04:17.929547Z%27,mode:quick,to:%272016-08-16T22:15:49.200753Z%27))", "type": "add_quicksilver_tasks", "build_url": null, "messages": {"2016-08-17T00:48:39.476707": {"message": "No Quicksilver tasks to add", "level": "INFO"}}}}]' diff --git a/tests/fixtures/wp.yml b/tests/fixtures/wp.yml deleted file mode 100644 index 5ad7c2b34..000000000 --- a/tests/fixtures/wp.yml +++ /dev/null @@ -1,290 +0,0 @@ - -- - request: - method: POST - url: 'https://onebox/api/authorize/machine-token' - headers: - Host: onebox - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:31:34 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: fd148080-87d2-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111","expires_at":1477744294,"user_id":"11111111-1111-1111-1111-111111111111"}' -- - request: - method: GET - url: 'https://onebox/api/users/11111111-1111-1111-1111-111111111111' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:31:35 GMT' - Content-Type: application/json - Content-Length: '3395' - Connection: keep-alive - X-Pantheon-Trace-Id: fdb6db00-87d2-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1425937227, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Dev User", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 8, "verify": 1, "tracking_first_code_push": 1426011230, "google_adwords_account_registered_sent": 1425936337, "invites_to_user": 6, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1426013115, "tracking_first_team_invite": 1446074374, "firstname": "Adam", "invites_to_site": 5, "lastname": "Barry", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1426019476, "last-org-spinup": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "tracking_first_site_create": 1426005794, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1429228569, "google_adwords_paid_for_site_sent": 1429228664, "modified": 1442611772, "maxdevsites": 2, "lead_type": "", "organization": "Pantheon Systems"}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "11111111-1111-1111-1111-111111111111", "created_at": 1425936291, "dev_sites_count": 1, "id": "11111111-1111-1111-1111-111111111111", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}' -- - request: - method: GET - url: 'https://onebox/api/site-names/behat-tests' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:31:37 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: fefa7e90-87d2-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "547e96b0-cafd-4230-b195-3393f78b839c", "name": "behat-tests"}' -- - request: - method: GET - url: 'https://onebox/api/sites/547e96b0-cafd-4230-b195-3393f78b839c?site_state=true' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:31:39 GMT' - Content-Type: application/json - Content-Length: '80226' - Connection: keep-alive - X-Pantheon-Trace-Id: 004fd560-87d3-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"allow_cacheserver": true, "allow_indexserver": true, "created": 1475324544, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "framework": "wordpress", "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "holder_type": "organization", "instrument": "11111111-1111-1111-1111-111111111111", "last_code_push": {"timestamp": "2016-10-01T12:23:00", "user_uuid": null}, "name": "behat-tests", "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "preferred_zone": "chios", "purchased_at": 1475324825, "service_level": "pro", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "label": "behat-tests", "id": "547e96b0-cafd-4230-b195-3393f78b839c", "holder": {"base_domain": null, "change_management": true, "email_domain": null, "experimental_agency_organization": "no", "instrument": "11111111-1111-1111-1111-111111111111", "maxdevsites": "20", "multidev": true, "name": "Organization Name", "requires_onboarding": false, "secure_runtime_access_enableable": true, "service_level": "pantheon_one", "show_org_name_header": "yes", "use_org_instrument": true, "id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "key": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "machine_name": "pantheon-employees", "has_multidev": false, "support_plan": "regular_support", "has_change_management": false, "profile": {"machine_name": "pantheon-employees", "change_service_url": null, "name": "Organization Name", "email_domain": null, "base_domain": null, "billing_url": null, "terms_of_service": null}, "settings": {"service_level": "pantheon_one", "use_org_instrument": true, "show_org_name_header": "yes", "base_domain": null, "discoverable": false, "email_domain": null}}, "settings": {"allow_domains": true, "max_num_cdes": 10, "stunnel": false, "replica_verification_strategy": "pt-heartbeat", "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "guilty_of_abuse": null, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "cacheserver": 1, "support_plan": "regular_support", "appserver": 1, "on_server_development": false, "drush_version": 5, "label": "behat-tests", "instrument": "11111111-1111-1111-1111-111111111111", "allow_read_slaves": false, "indexserver": 1, "php_version": "55", "php_channel": "stable", "allow_cacheserver": true, "ssl_enabled": null, "min_backups": 0, "service_level": "pro", "dedicated_ip": null, "dbserver": 1, "purchased_at": 1475324825, "framework": "wordpress", "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "e8fe8550-1ab9-4964-8838-2b9abdccf4bf", "branch": "master"}, "allow_indexserver": true, "preferred_zone": "chios", "pingdom_chance": 0, "holder_id": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "name": "behat-tests", "created": 1475324544, "max_backups": 7, "holder_type": "organization", "number_allow_domains": 200, "organization": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "pingdom_manually_enabled": false, "last_code_push": {"timestamp": "2016-10-01T12:23:00", "user_uuid": null}}, "base_domain": null, "attributes": {"label": "behat-tests"}, "add_ons": []}' -- - request: - method: GET - url: 'https://onebox/api/sites/547e96b0-cafd-4230-b195-3393f78b839c/environments' - headers: - Host: onebox - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:31:41 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: 010f06b0-87d3-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"dev": {"watchers": 0, "diffstat": {}, "on_server_development": true, "environment_created": 1475324544, "dns_zone": "pantheonsite.io", "randseed": "ALXAIME45UB6SXDN79CS53T93PR0CCZ9", "target_ref": "refs/heads/master", "lock": {"username": null, "password": null, "locked": false}, "target_commit": "3e1b537b7337bb40960c3a0afa55d4661fc91579", "styx_cluster": "styx-03.pantheon.io"}, "test": {"environment_created": 1475324549, "dns_zone": "pantheonsite.io", "randseed": "9A9P7AXJSFOPPAKUL3U96XYD6KA2E49C", "lock": {"username": null, "password": null, "locked": false}, "styx_cluster": "styx-03.pantheon.io"}, "live": {"environment_created": 1475324552, "dns_zone": "pantheonsite.io", "randseed": "JUDC7TEQGNFG35OS9ZVE1AQQLQTZOV06", "lock": {"username": null, "password": null, "locked": false}, "pingdom": 0, "styx_cluster": "styx-02.pantheon.io"}}' -- - request: - method: POST - url: 'https://dashboard.pantheon.io/api/authorize/machine-token' - headers: - Host: dashboard.pantheon.io - Expect: null - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - headers: 'Bearer 11111111-1111-1111-1111-111111111111:11111111-1111-1111-1111-111111111111:111111111111111111111' - verify: '1' - method: post - absolute_url: '' - json: terminus - Accept: null - body: '{"machine_token":"rkA9hXD6wO90vD1e50KxMohS7eBjsffyiRPAwQmWIsqUp","client":"terminus"}' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:59:11 GMT' - Content-Type: 'application/json; charset=utf-8' - Content-Length: '182' - Connection: keep-alive - X-Pantheon-Trace-Id: d8713df0-87d6-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"session":"920f16d3-8272-4822-9811-1d5d3e125e6f:d8d35efe-87d6-11e6-8806-bc764e10b0ce:MuYPBrEL4eObdj1l1OK5q","expires_at":1477745951,"user_id":"920f16d3-8272-4822-9811-1d5d3e125e6f"}' -- - request: - method: GET - url: 'https://dashboard.pantheon.io/api/users/920f16d3-8272-4822-9811-1d5d3e125e6f' - headers: - Host: dashboard.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:d8d35efe-87d6-11e6-8806-bc764e10b0ce:MuYPBrEL4eObdj1l1OK5q' - headers: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:d8d35efe-87d6-11e6-8806-bc764e10b0ce:MuYPBrEL4eObdj1l1OK5q' - verify: '1' - method: get - absolute_url: '' - options: get - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:59:11 GMT' - Content-Type: application/json - Content-Length: '3395' - Connection: keep-alive - X-Pantheon-Trace-Id: d92af100-87d6-11e6-adfd-7ff44164a2a3 - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"profile": {"utm_term": "", "tracking_first_organization_invite": 1425937227, "invites_to_nonuser": 2, "seen_first_time_user_popover": true, "utm_content": "", "experiments": {"welcome_video": "shown"}, "full_name": "Adam Barry", "utm_device": "", "initial_identity_strategy": null, "utm_campaign": "", "invites_sent": 8, "verify": 1, "tracking_first_code_push": 1426011230, "google_adwords_account_registered_sent": 1425936337, "invites_to_user": 6, "utm_medium": "", "job_function": "developer", "tracking_first_workflow_in_live": 1426013115, "tracking_first_team_invite": 1446074374, "firstname": "Adam", "invites_to_site": 5, "lastname": "Barry", "pda_campaign": null, "utm_source": "", "google_adwords_pushed_code_sent": 1426019476, "last-org-spinup": "d3ecc20c-395a-43c4-93ee-f5f43808b6c8", "tracking_first_site_create": 1426005794, "initial_identity_name": null, "guilty_of_abuse": null, "invites_to_org": 3, "minimize_jit_docs": false, "tracking_first_site_upgrade": 1429228569, "google_adwords_paid_for_site_sent": 1429228664, "modified": 1442611772, "maxdevsites": 2, "lead_type": "", "organization": "Pantheon Systems"}, "feature_flags": [{"name": "Support Chat Alpha", "default": false, "enabled": false, "visible": true, "optional": true, "id": "support_chat_alpha"}, {"name": "annotate git tags", "default": false, "enabled": false, "visible": false, "optional": false, "id": "annotate_git_tags"}, {"name": "Cacheserver Add-on", "default": false, "enabled": false, "visible": false, "optional": false, "id": "cacheserver-addon"}, {"name": "Apollo Spinup", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-spinup"}, {"name": "Pantheon One", "default": false, "enabled": false, "visible": false, "optional": false, "id": "one"}, {"name": "Unified User Account Screen ", "default": false, "enabled": false, "visible": true, "optional": false, "id": "apollo-user"}, {"name": "Indexserver Add-on", "default": false, "enabled": false, "visible": true, "optional": false, "id": "indexserver-addon"}, {"name": "Wordpress", "default": false, "enabled": false, "visible": false, "optional": false, "id": "wordpress"}, {"name": "Apollo Self-Service Toggle", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo-toggle"}, {"name": "Site Audit Checks", "default": false, "enabled": false, "visible": false, "optional": false, "id": "site_audit_checks"}, {"description": "Enables the new Desk API 2.0 Interface", "default": false, "enabled": true, "visible": true, "percentage": 100, "optional": false, "id": "desk", "name": "desk"}, {"name": "Experimental Products", "default": false, "enabled": false, "visible": false, "optional": false, "id": "experimental-products"}, {"name": "org tags", "default": false, "enabled": false, "visible": true, "optional": false, "id": "org-tags"}, {"name": "Apollo Dashboard", "default": true, "enabled": true, "visible": false, "optional": false, "id": "apollo"}, {"name": "Org Upstream Updates", "default": false, "enabled": false, "visible": false, "optional": false, "id": "org-has-code"}], "user_id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "created_at": 1425936291, "dev_sites_count": 1, "id": "920f16d3-8272-4822-9811-1d5d3e125e6f", "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "adam@getpantheon.com"}' -- - request: - method: GET - url: 'https://dashboard.pantheon.io/api/site-names/wordpress-vcr' - headers: - Host: dashboard.pantheon.io - Accept-Encoding: null - User-Agent: 'Terminus/0.13.2 (php_version=5.5.36&script=bin/terminus.php)' - Content-type: application/json - Authorization: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:d8d35efe-87d6-11e6-8806-bc764e10b0ce:MuYPBrEL4eObdj1l1OK5q' - headers: 'Bearer 920f16d3-8272-4822-9811-1d5d3e125e6f:d8d35efe-87d6-11e6-8806-bc764e10b0ce:MuYPBrEL4eObdj1l1OK5q' - verify: '1' - method: get - absolute_url: '' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Server: nginx - Date: 'Sat, 01 Oct 2016 12:59:14 GMT' - Content-Type: 'application/json; charset=utf-8' - Transfer-Encoding: chunked - Connection: keep-alive - X-Pantheon-Trace-Id: da6322e0-87d6-11e6-8315-1fc7e81867fd - X-Frame-Options: deny - Access-Control-Allow-Methods: GET - Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' - Cache-Control: no-cache - Pragma: no-cache - Vary: Accept-Encoding - Strict-Transport-Security: max-age=31536000 - body: '{"id": "547e96b0-cafd-4230-b195-3393f78b839c", "name": "wordpress-vcr"}' diff --git a/tests/unit_tests/Collections/APICollectionTest.php b/tests/unit_tests/Collections/APICollectionTest.php deleted file mode 100644 index 857af1f35..000000000 --- a/tests/unit_tests/Collections/APICollectionTest.php +++ /dev/null @@ -1,80 +0,0 @@ - (object)['id' => 'a', 'foo' => '123', 'category' => 'a',], - 'b' => (object)['id' => 'b', 'foo' => '456', 'category' => 'a',], - 'c' => (object)['id' => 'c', 'foo' => '678', 'category' => 'b',], - 'd' => (object)['id' => 'd', 'foo' => ['key' => 'value',], 'category' => 'b',], - ]; - - $this->request->expects($this->once()) - ->method('request') - ->with('TESTURL', ['options' => ['method' => 'get',],]) - ->willReturn(['data' => $data]); - - $collection = $this->getMockBuilder(APICollection::class) - ->setMethods(['getUrl',]) - ->disableOriginalConstructor() - ->getMock(); - $collection->expects($this->once()) - ->method('getUrl') - ->willReturn('TESTURL'); - - $models = []; - $options = ['collection' => $collection,]; - $i = 0; - foreach ($data as $key => $model_data) { - $models[$model_data->id] = $this->getMockForAbstractClass(TerminusModel::class, [$model_data, $options,]); - $options['id'] = $model_data->id; - $this->container->expects($this->at($i++)) - ->method('get') - ->with(TerminusModel::class, [$model_data, $options,]) - ->willReturn($models[$key]); - $models[$model_data->id]->method('serialize')->willReturn((array)$model_data); - } - - $collection->setRequest($this->request); - $collection->setContainer($this->container); - - $collection->fetch(); - - $this->assertEquals(array_keys($models), $collection->ids()); - $this->assertEquals($models, $collection->all()); - foreach ($models as $id => $model) { - $this->assertEquals($model, $collection->get($id)); - } - - $expected = array_map(function ($d) { - return (array)$d; - }, $data); - $this->assertEquals($expected, $collection->serialize()); - } - - /** - * Tests APICollection::setPaging(bool) and APICollection::isPaged() - */ - public function testPaging() - { - $collection = $this->getMockForAbstractClass(APICollection::class); - - $this->assertEquals($collection, $collection->setPaging(false)); - $this->assertTrue($collection->setPaging(true)->isPaged()); - $this->assertFalse($collection->setPaging(false)->isPaged()); - } -} diff --git a/tests/unit_tests/Collections/BackupsTest.php b/tests/unit_tests/Collections/BackupsTest.php deleted file mode 100644 index 9b52144b2..000000000 --- a/tests/unit_tests/Collections/BackupsTest.php +++ /dev/null @@ -1,548 +0,0 @@ -backup_data = (object)[ - '1471562180_backup_code' => - (object)[ - 'task_id' => 'c5ea7af2-6599-11e6-965c-bc764e10d7c2', - 'finish_time' => 1471562190.7729061, - 'endpoint_uuid' => '07988ae6-f85e-4563-8a76-a35984294006', - 'BUILD_URL' => 'https://104.239.201.18:8090/jenkins/job/backup_priority/708812/', - 'filename' => 'behat-tests_dev_2016-08-18T23-16-20_UTC_code.tar.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-708812', - 'ttl' => 31556736, - 'folder' => '1471562180_backup', - 'start_time' => 1471562183.1445751, - 'size' => 33333110, - 'timestamp' => 1471562190, - 'scheduled_for' => 1471562190, - ], - '1471562156_backup_manifest' => - (object)[ - 'total_dirs' => 0, - 'total_size' => 0, - 'endpoint_uuid' => '49baf0a5-4386-4b33-839e-350a1ed091fa', - 'BUILD_URL' => 'https://54.167.154.236:8090/jenkins/job/backup_priority/5618/', - 'BUILD_TAG' => 'jenkins-backup_priority-5618', - 'ttl' => 31536000, - 'total_files' => 0, - 'folder' => '1471562156_backup', - 'total_entries' => 0, - 'size' => 0, - 'timestamp' => 1471562160, - 'scheduled_for' => 1471562190, - ], - '1471562156_backup_files' => - (object)[ - 'task_id' => 'b79ca7fe-6599-11e6-84b4-bc764e1141f9', - 'finish_time' => 1471562160.4710801, - 'endpoint_uuid' => '49baf0a5-4386-4b33-839e-350a1ed091fa', - 'BUILD_URL' => 'https://54.167.154.236:8090/jenkins/job/backup_priority/5618/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-56_UTC_files.tar.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-5618', - 'ttl' => 31556736, - 'folder' => '1471562156_backup', - 'start_time' => 1471562159.2395351, - 'size' => 168, - 'timestamp' => 1471562160, - 'scheduled_for' => 1471562190, - ], - '1471562156_backup_database' => - (object)[ - 'task_id' => 'b78fe4f6-6599-11e6-84b4-bc764e1141f9', - 'finish_time' => 1471562159.6410241, - 'endpoint_uuid' => '07988ae6-f85e-4563-8a76-a35984294006', - 'BUILD_URL' => 'https://104.239.201.18:8090/jenkins/job/backup_priority/708810/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-56_UTC_database.sql.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-708810', - 'ttl' => 31556736, - 'folder' => '1471562156_backup', - 'start_time' => 1471562158.974858, - 'size' => 833, - 'timestamp' => 1471562159, - 'scheduled_for' => 1471562190, - ], - '1471562156_backup_code' => - (object)[ - 'task_id' => 'b78dee76-6599-11e6-84b4-bc764e1141f9', - 'finish_time' => 1471562166.041888, - 'endpoint_uuid' => '07988ae6-f85e-4563-8a76-a35984294006', - 'BUILD_URL' => 'https://104.239.201.18:8090/jenkins/job/backup_priority/708811/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-56_UTC_code.tar.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-708811', - 'ttl' => 31556736, - 'folder' => '1471562156_backup', - 'start_time' => 1471562158.947875, - 'size' => 33358038, - 'timestamp' => 1471562166, - 'scheduled_for' => 1471562190, - ], - '1471562114_backup_manifest' => - (object)[ - 'total_dirs' => 0, - 'total_size' => 0, - 'endpoint_uuid' => 'bee94730-4287-4228-857f-ef25b4ce38a3', - 'BUILD_URL' => 'https://54.166.122.7:8090/jenkins/job/backup_priority/30641/', - 'BUILD_TAG' => 'jenkins-backup_priority-30641', - 'ttl' => 31536000, - 'total_files' => 0, - 'folder' => '1471562114_backup', - 'total_entries' => 0, - 'size' => 0, - 'timestamp' => 1471562119, - 'scheduled_for' => 1471562190, - ], - '1471562114_backup_files' => - (object)[ - 'task_id' => '9e8f4a5a-6599-11e6-977c-bc764e105ecb', - 'finish_time' => null, - 'endpoint_uuid' => 'bee94730-4287-4228-857f-ef25b4ce38a3', - 'BUILD_URL' => 'https://54.166.122.7:8090/jenkins/job/backup_priority/30641/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-14_UTC_files.tar.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-30641', - 'ttl' => 31556736, - 'folder' => '1471562114_backup', - 'start_time' => 1471562118.104852, - 'size' => 169, - 'timestamp' => null, - 'scheduled_for' => 1471562190, - ], - '1471562114_backup_database' => - (object)[ - 'task_id' => '9e6f55d8-6599-11e6-977c-bc764e105ecb', - 'finish_time' => 1471562120.2322991, - 'endpoint_uuid' => '07988ae6-f85e-4563-8a76-a35984294006', - 'BUILD_URL' => 'https://104.239.201.18:8090/jenkins/job/backup_priority/708807/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-14_UTC_database.sql.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-708807', - 'ttl' => 31556736, - 'folder' => '1471562114_backup', - 'start_time' => 1471562118.301039, - 'size' => 0, - 'timestamp' => 1471562120, - 'scheduled_for' => 1471562190, - ], - '1471562114_backup_code' => - (object)[ - 'task_id' => '9e6d6e76-6599-11e6-977c-bc764e105ecb', - 'finish_time' => 1471562126.0202169, - 'endpoint_uuid' => '07988ae6-f85e-4563-8a76-a35984294006', - 'BUILD_URL' => 'https://104.239.201.18:8090/jenkins/job/backup_priority/708806/', - 'filename' => 'behat-tests_dev_2016-08-18T23-15-14_UTC_code.tar.gz', - 'BUILD_TAG' => 'jenkins-backup_priority-708806', - 'ttl' => 31556736, - 'folder' => '1471562114_backup', - 'start_time' => 1471562118.0184841, - 'size' => 0, - 'timestamp' => 1471562126, - 'scheduled_for' => 1471562190, - ], - ]; - - $this->backups = $this->createBackups(); - } - - public function testCancelBackupSchedule() - { - for ($i = 0; $i < 7; $i++) { - $this->request->expects($this->at($i)) - ->method('request') - ->with('sites/abc/environments/dev/backups/schedule/' . $i, ['method' => 'delete']); - } - - $this->backups->cancelBackupSchedule(); - } - - public function testCreate() - { - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'do_export', - ['params' => [ - 'code' => true, - 'database' => true, - 'files' => true, - 'entry_type' => 'backup', - 'ttl' => 31536000.0 - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->create(); - $this->assertEquals($this->workflow, $actual); - - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'do_export', - ['params' => [ - 'code' => true, - 'database' => false, - 'files' => false, - 'entry_type' => 'backup', - 'ttl' => 5 * 86400 - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->create(['element' => 'code', 'keep-for' => 5]); - $this->assertEquals($this->workflow, $actual); - - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'do_export', - ['params' => [ - 'code' => false, - 'database' => true, - 'files' => false, - 'entry_type' => 'backup', - 'ttl' => 5 * 86400 - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->create(['element' => 'database', 'keep-for' => 5]); - $this->assertEquals($this->workflow, $actual); - - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'do_export', - ['params' => [ - 'code' => false, - 'database' => false, - 'files' => true, - 'entry_type' => 'backup', - 'ttl' => 5 * 86400 - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->create(['element' => 'files', 'keep-for' => 5]); - $this->assertEquals($this->workflow, $actual); - } - - public function testGetBackupByFileName() - { - $backups = $this->createBackupsWithModels(); - - $id = '1471562156_backup_code'; - $data = $this->backup_data->{$id}; - $out = $backups->getBackupByFileName($data->filename); - $this->assertEquals($out->get('id'), $id); - $this->assertEquals($out->get('folder'), $data->folder); - $this->assertEquals($out->get('task_id'), $data->task_id); - $this->assertEquals($out->get('filename'), $data->filename); - - $this->setExpectedException(TerminusException::class, "Could not find a backup identified by not-there."); - $out = $backups->getBackupByFileName('not-there'); - $this->assertNull($out); - } - - public function testGetBackupsByElement() - { - $backups = $this->createBackupsWithModels(); - $out = $backups->getBackupsByElement('code'); - $this->assertEquals(3, count($out)); - foreach ($out as $backup) { - $this->assertEquals('code', $backup->get('type')); - } - - $out = $backups->getBackupsByElement('files'); - $this->assertEquals(2, count($out)); - foreach ($out as $backup) { - $this->assertEquals('files', $backup->get('type')); - } - - $out = $backups->getBackupsByElement('database'); - $this->assertEquals(2, count($out)); - foreach ($out as $backup) { - $this->assertEquals('database', $backup->get('type')); - } - } - - public function testGetBackupSchedule() - { - $schedule = (object)([ - '0' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - '1' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - '2' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - '3' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - '4' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - '5' => - (object)([ - 'hour' => 16, - 'ttl' => 2764800, - ]), - '6' => - (object)([ - 'hour' => 16, - 'ttl' => 691200, - ]), - ]); - $backups = $this->createBackups(); - $this->request->expects($this->once()) - ->method('request') - ->with('sites/abc/environments/dev/backups/schedule') - ->willReturn(['data' => $schedule]); - - $actual = $backups->getBackupSchedule(); - $expected = [ - 'daily_backup_hour' => '16 UTC', - 'weekly_backup_day' => 'Friday', - 'expiry' => '32 days', - ]; - $this->assertEquals($expected, $actual); - } - - public function testGetFinishedBackups() - { - $backups = $this->createBackupsWithModels(); - - $out = $backups->getFinishedBackups(); - $this->assertEquals(4, count($out)); - $last = INF; - foreach ($out as $backup) { - $this->assertTrue($backup->backupIsFinished()); - $this->assertLessThan($last, $backup->get('start_time')); - $last = $backup->get('start_time'); - } - - $out = $backups->getFinishedBackups('code'); - $this->assertEquals(2, count($out)); - foreach ($out as $backup) { - $this->assertTrue($backup->backupIsFinished()); - $this->assertEquals('code', $backup->get('type')); - } - $out = $backups->getFinishedBackups('files'); - $this->assertEquals(1, count($out)); - foreach ($out as $backup) { - $this->assertTrue($backup->backupIsFinished()); - $this->assertEquals('files', $backup->get('type')); - } - $out = $backups->getFinishedBackups('database'); - $this->assertEquals(1, count($out)); - foreach ($out as $backup) { - $this->assertTrue($backup->backupIsFinished()); - $this->assertEquals('database', $backup->get('type')); - } - } - - public function testGetValidElements() - { - $expected = ['code', 'files', 'database', 'db',]; - $actual = $this->backups->getValidElements(); - $this->assertEquals($expected, $actual); - } - - public function testSetBackupSchedule() - { - $weekly_backup_ttl_days = Backups::WEEKLY_BACKUP_TTL; - $daily_backup_ttl_days = Backups::DAILY_BACKUP_TTL; - $weekly_backup_ttl = Backups::convertDaysToSeconds($weekly_backup_ttl_days); - $daily_backup_ttl = Backups::convertDaysToSeconds($daily_backup_ttl_days); - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'change_backup_schedule', - ['params' => [ - 'backup_schedule' => (object)[ - (object)['hour' => null, 'ttl' => $weekly_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - (object)['hour' => null, 'ttl' => $daily_backup_ttl], - ] - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->setBackupSchedule([ - 'day' => 'Sunday', - ]); - $this->assertEquals($this->workflow, $actual); - } - - public function testSetBackupScheduleWithHour() - { - $weekly_backup_ttl_days = Backups::WEEKLY_BACKUP_TTL; - $daily_backup_ttl_days = Backups::DAILY_BACKUP_TTL; - $weekly_backup_ttl = Backups::convertDaysToSeconds($weekly_backup_ttl_days); - $daily_backup_ttl = Backups::convertDaysToSeconds($daily_backup_ttl_days); - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'change_backup_schedule', - ['params' => [ - 'backup_schedule' => (object)[ - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - (object)['hour' => 5, 'ttl' => $weekly_backup_ttl,], - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - (object)['hour' => 5, 'ttl' => $daily_backup_ttl,], - ] - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->setBackupSchedule(['day' => 'Monday', 'hour' => 5,]); - $this->assertEquals($this->workflow, $actual); - } - - public function testSetBackupScheduleWithTtl() - { - $weekly_backup_ttl_days = 16; - $daily_backup_ttl_days = 2; - $weekly_backup_ttl = Backups::convertDaysToSeconds($weekly_backup_ttl_days); - $daily_backup_ttl = Backups::convertDaysToSeconds($daily_backup_ttl_days); - $backups = $this->createBackups(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'change_backup_schedule', - ['params' => [ - 'backup_schedule' => (object)[ - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - (object)['hour' => null, 'ttl' => $weekly_backup_ttl,], - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - (object)['hour' => null, 'ttl' => $daily_backup_ttl,], - ] - ]] - ) - ->willReturn($this->workflow); - - $actual = $backups->setBackupSchedule([ - 'daily-ttl' => $daily_backup_ttl_days, - 'day' => 'Monday', - 'weekly-ttl' => $weekly_backup_ttl_days, - ]); - $this->assertEquals($this->workflow, $actual); - } - - protected function createBackups() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'abc'; - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'dev'; - $this->environment->method('getWorkflows')->willReturn($this->workflows); - $this->environment->method('getSite')->willReturn($site); - - $backups = new Backups(['environment' => $this->environment]); - $backups->setRequest($this->request); - $backups->setContainer($this->container); - return $backups; - } - - protected function createBackupsWithModels() - { - $backups = $this->createBackups(); - $this->request->expects($this->once()) - ->method('request') - ->with( - 'sites/abc/environments/dev/backups/catalog', - ['options' => ['method' => 'get',],] - ) - ->willReturn(['data' => $this->backup_data,]); - - $i = 0; - foreach ((array)$this->backup_data as $id => $data) { - if (isset($data->filename)) { - $this->container->expects($this->at($i++)) - ->method('get') - ->with( - Backup::class, - [ - $data, - ['id' => $id, 'collection' => $backups,] - ] - ) - ->willReturn( - new Backup( - (object)array_merge((array)$data, compact('id')), - ['collection' => $backups,] - ) - ); - } - } - return $backups; - } -} diff --git a/tests/unit_tests/Collections/BindingsTest.php b/tests/unit_tests/Collections/BindingsTest.php deleted file mode 100644 index f0a119cb5..000000000 --- a/tests/unit_tests/Collections/BindingsTest.php +++ /dev/null @@ -1,391 +0,0 @@ -bindings_data = (object)[ - 'd37eff55a5ec4c3daf31f17f239fd893' => - (object)[ - 'binding_created' => 1471385346, - 'client' => 'fusedav-release', - 'cluster' => 'valhalla4', - 'comment' => 'Created by environment creation.', - 'environment' => 'live', - 'host' => 'remote', - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'fileserver', - 'fqdn' => 'valhalla4.cluster.panth.io', - ], - '0bc33e0b7b37462cad40e081d5173721' => - (object)[ - 'access_key' => '6da9cc4b98554574b9d0e1fe43e57314', - 'binding_created' => 1471385341, - 'cached_at' => 1471563088, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471563088, - 'current_commit' => 'a6a94cff8dbc3f15c93b2d3c6777aa334a476927', - 'current_ref' => 'refs/heads/master', - 'endpoint' => '17fbb90d-7844-404d-9e49-3b034a0cc088', - 'endpoint_zone' => 'chios', - 'environment' => 'dev', - 'host' => '23.253.170.86', - 'port' => 15015, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'appserver', - 'ideal_host' => '23.253.170.86', - 'ideal_fqdn' => '17fbb90d-7844-404d-9e49-3b034a0cc088.panth.io', - 'fqdn' => '17fbb90d-7844-404d-9e49-3b034a0cc088.panth.io', - ], - 'c31cecd9e55f474cb80b25951473688e' => - (object)[ - 'binding_created' => 1471385342, - 'cached_at' => 1471595493, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471595493, - 'create_site' => false, - 'database' => 'pantheon', - 'endpoint' => 'b18e3a08-8ba3-4c98-815a-fc18158fd314', - 'endpoint_zone' => 'chios', - 'environment' => 'dev', - 'host' => '23.253.60.7', - 'password' => 'ad7e59695d264b3782c2a9fd959d6a40', - 'port' => 16698, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'dbserver', - 'username' => 'pantheon', - 'ideal_host' => '23.253.60.7', - 'ideal_fqdn' => 'b18e3a08-8ba3-4c98-815a-fc18158fd314.panth.io', - 'fqdn' => 'b18e3a08-8ba3-4c98-815a-fc18158fd314.panth.io', - ], - 'b849d36fc4d5476cba555c34fbbd8c38' => - (object)[ - 'binding_created' => 1471385345, - 'cached_at' => 1471527886, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471527886, - 'database' => 'pantheon', - 'endpoint' => 'aab3fa62-13e5-41dd-a8a6-f10afd142c30', - 'endpoint_zone' => 'chios', - 'environment' => 'test', - 'host' => '104.130.221.57', - 'password' => 'ac7b3205bb5b4f6884c4cddf99dfa4c3', - 'port' => 17434, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'dbserver', - 'username' => 'pantheon', - 'ideal_host' => '104.130.221.57', - 'ideal_fqdn' => 'aab3fa62-13e5-41dd-a8a6-f10afd142c30.panth.io', - 'fqdn' => 'aab3fa62-13e5-41dd-a8a6-f10afd142c30.panth.io', - ], - '69189ea7f4c44ad98e5433e85ab0e76b' => - (object)[ - 'binding_created' => 1471385346, - 'cached_at' => 1471594339, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471594339, - 'database' => 'pantheon', - 'endpoint' => 'a528426d-f124-44f2-b662-dd558df57b5e', - 'endpoint_zone' => 'chios', - 'environment' => 'live', - 'host' => '162.242.168.67', - 'password' => 'a7dd95d3d52f40f3806b7a307e1fe748', - 'port' => 16569, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'dbserver', - 'username' => 'pantheon', - 'ideal_host' => '162.242.168.67', - 'ideal_fqdn' => 'a528426d-f124-44f2-b662-dd558df57b5e.panth.io', - 'fqdn' => 'a528426d-f124-44f2-b662-dd558df57b5e.panth.io', - ], - 'ffb86439e04a4739ac49a41a7021dcfb' => - (object)[ - 'access_key' => '5873e31554fc419281a9991b124e2980', - 'binding_created' => 1471385341, - 'cached_at' => 1471602298, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471602298, - 'create_site' => false, - 'endpoint' => '098311de-5761-4036-9696-2073a04aa21b', - 'endpoint_zone' => 'chios', - 'environment' => 'dev', - 'host' => '104.239.200.45', - 'port' => 11797, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'codeserver', - 'ideal_host' => '104.239.200.45', - 'ideal_fqdn' => '098311de-5761-4036-9696-2073a04aa21b.panth.io', - 'fqdn' => '098311de-5761-4036-9696-2073a04aa21b.panth.io', - ], - 'd9eee142f9414e4eaf79e4190e433c39' => - (object)[ - 'access_key' => '44cd377aeb2d4b9395031ec1aa95eada', - 'binding_created' => 1471385345, - 'cached_at' => 1471583650, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471583650, - 'current_commit' => '1fdf194d3d7a0c930a4f118e1398412765320328', - 'current_ref' => 'refs/tags/pantheon_live_1', - 'endpoint' => 'ece44d39-1d2f-4c12-b3f7-bc9f9241225e', - 'endpoint_zone' => 'chios', - 'environment' => 'live', - 'host' => '104.130.221.23', - 'port' => 19507, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'appserver', - 'ideal_host' => '104.130.221.23', - 'ideal_fqdn' => 'ece44d39-1d2f-4c12-b3f7-bc9f9241225e.panth.io', - 'fqdn' => 'ece44d39-1d2f-4c12-b3f7-bc9f9241225e.panth.io', - ], - '34bc64f2b779461d805fcbb8675866c8' => - (object)[ - 'access_key' => 'c0a1a7c8327f47a1bca96aab68b54676', - 'binding_created' => 1471385344, - 'cached_at' => 1471547694, - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471547694, - 'current_commit' => '1fdf194d3d7a0c930a4f118e1398412765320328', - 'current_ref' => 'refs/tags/pantheon_test_1', - 'endpoint' => 'e46ff168-8fe3-4a8a-abc2-3b50e08ddc92', - 'endpoint_zone' => 'chios', - 'environment' => 'test', - 'host' => '104.130.221.158', - 'port' => 17493, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'appserver', - 'ideal_host' => '104.130.221.158', - 'ideal_fqdn' => 'e46ff168-8fe3-4a8a-abc2-3b50e08ddc92.panth.io', - 'fqdn' => 'e46ff168-8fe3-4a8a-abc2-3b50e08ddc92.panth.io', - ], - '1ede71b414a9452380e5952ca061fbc0' => - (object)[ - 'binding_created' => 1471385345, - 'client' => 'fusedav-release', - 'cluster' => 'valhalla4', - 'comment' => 'Created by environment creation.', - 'environment' => 'test', - 'host' => 'remote', - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'fileserver', - 'fqdn' => 'valhalla4.cluster.panth.io', - ], - '947f61aec1c347669a8002f10ccfa6ca' => - (object)[ - 'binding_created' => 1471385343, - 'client' => 'fusedav-release', - 'cluster' => 'valhalla4', - 'comment' => 'Created by environment creation.', - 'converged_at' => 1471385386, - 'create_site' => false, - 'environment' => 'dev', - 'host' => 'remote', - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'fileserver', - 'fqdn' => 'valhalla4.cluster.panth.io', - ], - '2e6413eea72d48faab414ff9d6027452' => - (object)[ - 'binding_created' => 1470329762, - 'cached_at' => 1473337382, - 'comment' => 'Created by adjust binding count at Thu Aug 4 16:56:02 2016.', - 'converged_at' => 1473337382, - 'endpoint' => '6159bd13-ed38-48b3-ac41-699b2369cdbd', - 'endpoint_zone' => 'chios', - 'environment' => 'live', - 'host' => '23.253.58.38', - 'password' => 'd10342e784aa4965a33ff42dff8736c4', - 'port' => 11314, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'cacheserver', - 'ideal_host' => '23.253.58.38', - 'ideal_fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - 'fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - ], - '9f12ce4891a54a69887628170e4dbfd9' => - (object)[ - 'binding_created' => 1470329766, - 'cached_at' => 1473337276, - 'comment' => 'Created by adjust binding count at Thu Aug4 16:56:06 2016.', - 'converged_at' => 1473337276, - 'endpoint' => '6159bd13-ed38-48b3-ac41-699b2369cdbd', - 'endpoint_zone' => 'chios', - 'environment' => 'multidev', - 'host' => '23.253.58.38', - 'password' => 'a172e896cbda44a8bb17719b24c4c74d', - 'port' => 11315, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'cacheserver', - 'ideal_host' => '23.253.58.38', - 'ideal_fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - 'fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - ], - '929553873fd74e4ebe17010ac521b1ce' => - (object)[ - 'binding_created' => 1470329764, - 'cached_at' => 1473370391, - 'comment' => 'Created by adjust binding count at Thu Aug4 16:56:04 2016.', - 'converged_at' => 1473370391, - 'endpoint' => '106e9705-522d-4e24-9ea1-ee66307b052e', - 'endpoint_zone' => 'chios', - 'environment' => 'dev', - 'host' => '23.253.39.24', - 'password' => 'bf19fbfd2f584df591aa1c8666a8f126', - 'port' => 11279, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'cacheserver', - 'ideal_host' => '23.253.39.24', - 'ideal_fqdn' => '106e9705-522d-4e24-9ea1-ee66307b052e.panth.io', - 'fqdn' => '106e9705-522d-4e24-9ea1-ee66307b052e.panth.io', - ], - '01862c1dc3924fef971a40d30369deff' => - (object)[ - 'binding_created' => 1470329760, - 'cached_at' => 1473336876, - 'comment' => 'Created by adjust binding count at Thu Aug4 16:56:00 2016.', - 'converged_at' => 1473336876, - 'endpoint' => '6159bd13-ed38-48b3-ac41-699b2369cdbd', - 'endpoint_zone' => 'chios', - 'environment' => 'test', - 'host' => '23.253.58.38', - 'password' => '2bb6c2365ee64cdc9be1d840dbaf426b', - 'port' => 11313, - 'ready' => true, - 'site' => '11111111-1111-1111-1111-111111111111', - 'slave_of' => null, - 'type' => 'cacheserver', - 'ideal_host' => '23.253.58.38', - 'ideal_fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - 'fqdn' => '6159bd13-ed38-48b3-ac41-699b2369cdbd.panth.io', - ], - ]; - - $this->bindings = $this->createBindings(); - } - - public function testGetByType() - { - $bindings = $this->createBindingsWithModels(); - - $out = $bindings->getByType('cacheserver'); - $this->assertEquals(4, count($out)); - foreach ($out as $binding) { - $this->assertEquals('cacheserver', $binding->get('type')); - } - - $out = $bindings->getByType('fileserver'); - $this->assertEquals(3, count($out)); - foreach ($out as $binding) { - $this->assertEquals('fileserver', $binding->get('type')); - } - - $out = $bindings->getByType('codeserver'); - $this->assertEquals(1, count($out)); - foreach ($out as $binding) { - $this->assertEquals('codeserver', $binding->get('type')); - } - - $out = $bindings->getByType('dbserver'); - $this->assertEquals(3, count($out)); - foreach ($out as $binding) { - $this->assertEquals('dbserver', $binding->get('type')); - } - - $out = $bindings->getByType('other'); - $this->assertEquals(0, count($out)); - } - - public function testGetURL() - { - $this->assertEquals("sites/{$this->environment->getSite()->id}/bindings", $this->bindings->getUrl()); - } - - protected function createBindings() - { - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'dev'; - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site id'; - $this->environment->method('getSite')->willReturn($site); - - $bindings = new Bindings(['environment' => $this->environment,]); - $bindings->setRequest($this->request); - $bindings->setContainer($this->container); - return $bindings; - } - - protected function createBindingsWithModels() - { - $bindings = $this->createBindings(); - $this->request->expects($this->once()) - ->method('request') - ->with( - "sites/{$this->environment->getSite()->id}/bindings", - ['options' => ['method' => 'get']] - ) - ->willReturn(['data' => $this->bindings_data]); - - $i = 0; - foreach ($this->bindings_data as $id => $data) { - $this->container->expects($this->at($i++)) - ->method('get') - ->with( - Binding::class, - [ - $data, - ['id' => $id, 'collection' => $bindings] - ] - ) - ->willReturn(new Binding($data, ['collection' => $bindings])); - } - return $bindings; - } -} diff --git a/tests/unit_tests/Collections/BranchesTest.php b/tests/unit_tests/Collections/BranchesTest.php deleted file mode 100644 index 7140da8b3..000000000 --- a/tests/unit_tests/Collections/BranchesTest.php +++ /dev/null @@ -1,64 +0,0 @@ -site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->collection_data = ['a' => 'sha1', 'b' => 'sha2', 'c' => 'sha3',]; - $this->collection = $this->getMockBuilder(Branches::class) - ->setMethods(['getData', 'add',]) - ->enableOriginalConstructor() - ->setConstructorArgs([['site' => $this->site,],]) - ->getMock(); - } - - /** - * Tests Branches::fetch($options) when data is not provided via the options - */ - public function testFetch() - { - $this->collection->expects($this->once()) - ->method('getData') - ->willReturn($this->collection_data); - - $out = $this->collection->fetch(); - $this->assertEquals($out, $this->collection); - } - - protected function expectAdditions() - { - $counter = 0; - foreach ($this->collection_data as $id => $sha) { - $this->collection->expects($this->at($counter++)) - ->method('add') - ->with($this->equalTo((object)['id' => $id, 'sha' => $sha,])); - } - } -} diff --git a/tests/unit_tests/Collections/CollectionTestCase.php b/tests/unit_tests/Collections/CollectionTestCase.php deleted file mode 100644 index 4deab5cf5..000000000 --- a/tests/unit_tests/Collections/CollectionTestCase.php +++ /dev/null @@ -1,57 +0,0 @@ -config; - } - - /** - * @inheritdoc - */ - protected function setUp() - { - $this->config = $this->getMockBuilder(Config::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request->method('getConfig')->willReturn($this->getConfig()); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Collections/CommitsTest.php b/tests/unit_tests/Collections/CommitsTest.php deleted file mode 100644 index 7d67f1901..000000000 --- a/tests/unit_tests/Collections/CommitsTest.php +++ /dev/null @@ -1,32 +0,0 @@ -environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'dev'; - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site id'; - $this->environment->method('getSite')->willReturn($site); - - $commits = new Commits(['environment' => $this->environment,]); - - $this->assertEquals("sites/{$site->id}/environments/{$this->environment->id}/code-log", $commits->getUrl()); - } -} diff --git a/tests/unit_tests/Collections/DomainsTest.php b/tests/unit_tests/Collections/DomainsTest.php deleted file mode 100644 index 121945c9a..000000000 --- a/tests/unit_tests/Collections/DomainsTest.php +++ /dev/null @@ -1,108 +0,0 @@ -environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'dev'; - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = 'site id'; - $this->url = "sites/{$this->site->id}/environments/{$this->environment->id}/domains"; - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->method('getSite') - ->willReturn($this->site); - $this->environment->method('getWorkflows') - ->willReturn($this->workflows); - - $this->collection = new Domains(['environment' => $this->environment,]); - $this->collection->setRequest($this->request); - $this->collection->setContainer($this->container); - } - - /** - * Tests the Domains::create() function - */ - public function testCreate() - { - $domain = 'dev.example.com'; - $this->request->expects($this->once()) - ->method('request') - ->with("{$this->url}/$domain", ['method' => 'put',]); - - $this->assertNull($this->collection->create($domain)); - } - - /** - * Tests the Domains::fetchWithRecommendations() function - */ - public function testFetchWithRecommendations() - { - $dummy_data = [ - (object)['id' => 'domain.com', 'type' => 'custom',] - ]; - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->url, - [ - 'options' => ['method' => 'get',], - 'query' => ['hydrate' => ['as_list', 'recommendations',],], - ] - ) - ->willReturn(['data' => $dummy_data,]); - - $out = $this->collection->fetchWithRecommendations(); - $this->assertEquals($this->collection, $out); - $this->assertEquals($this->collection->getData(), $dummy_data); - } -} diff --git a/tests/unit_tests/Collections/DummyCollection.php b/tests/unit_tests/Collections/DummyCollection.php deleted file mode 100644 index 6689af2de..000000000 --- a/tests/unit_tests/Collections/DummyCollection.php +++ /dev/null @@ -1,19 +0,0 @@ - $option) { - $this->$key = $option; - } - } -} diff --git a/tests/unit_tests/Collections/EnvironmentsTest.php b/tests/unit_tests/Collections/EnvironmentsTest.php deleted file mode 100644 index b2a4825b6..000000000 --- a/tests/unit_tests/Collections/EnvironmentsTest.php +++ /dev/null @@ -1,268 +0,0 @@ -request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = 'site id'; - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection = new Environments(['site' => $this->site,]); - $this->collection->setRequest($this->request); - $this->collection->setContainer($this->container); - } - - /** - * Tests the Environments::create(string, Environment) function - */ - public function testCreate() - { - list($from_env, $to_env_string, $workflow, $workflows) = $this->makeCreateMocks(); - $workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('create_cloud_development_environment'), - $this->equalTo([ - 'params' => [ - 'environment_id' => $to_env_string, - 'deploy' => [ - 'annotation' => "Create the \"{$to_env_string}\" environment.", - 'clone_database' => ['from_environment' => $from_env->id,], - 'clone_files' => ['from_environment' => $from_env->id,], - ], - ], - ]) - ) - ->willReturn($workflow); - - $out = $this->collection->create($to_env_string, $from_env); - $this->assertEquals($out, $workflow); - } - - /** - * Tests the Environments::create(string, Environment, ['no-db' => true,]) function - */ - public function testCreateNoDb() - { - list($from_env, $to_env_string, $workflow, $workflows) = $this->makeCreateMocks(); - $workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('create_cloud_development_environment'), - $this->equalTo([ - 'params' => [ - 'environment_id' => $to_env_string, - 'deploy' => [ - 'annotation' => "Create the \"{$to_env_string}\" environment.", - 'clone_files' => ['from_environment' => $from_env->id,], - ], - ], - ]) - ) - ->willReturn($workflow); - - $out = $this->collection->create($to_env_string, $from_env, ['no-db' => true,]); - $this->assertEquals($out, $workflow); - } - - - /** - * Tests the Environments::create(string, Environment, ['no-files' => true,]) function - */ - public function testCreateNoFiles() - { - list($from_env, $to_env_string, $workflow, $workflows) = $this->makeCreateMocks(); - $workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('create_cloud_development_environment'), - $this->equalTo([ - 'params' => [ - 'environment_id' => $to_env_string, - 'deploy' => [ - 'annotation' => "Create the \"{$to_env_string}\" environment.", - 'clone_database' => ['from_environment' => $from_env->id,], - ], - ], - ]) - ) - ->willReturn($workflow); - - $out = $this->collection->create($to_env_string, $from_env, ['no-files' => true,]); - $this->assertEquals($out, $workflow); - } - - /** - * Tests the Environments::ids() function - */ - public function testIDs() - { - $this->makeEnvironmentsFetchable(); - $out = $this->collection->ids(); - $this->assertEquals($out, ['dev', 'test', 'live', 'multidev', 'new_version', 'multidev2',]); - } - - /** - * Tests the Environments::multidev() function - */ - public function testMultidev() - { - $this->makeEnvironmentsFetchable(); - $expected = [ - 'multidev' => $this->environments['multidev'], - 'multidev2' => $this->environments['multidev2'], - 'new_version' => $this->environments['new_version'], - ]; - $this->assertEquals($expected, $this->collection->multidev()); - } - - /** - * Tests the Environments::serialize() function when the site is frozen - */ - public function testSerializeFrozen() - { - $this->site->expects($this->once()) - ->method('isFrozen') - ->willReturn(true); - $this->makeEnvironmentsFetchable(); - $expected = array_map(function ($data) { - return (array)$data; - }, $this->env_data); - unset($expected['test']); - unset($expected['live']); - $this->assertEquals($expected, $this->collection->serialize()); - } - - /** - * Tests the Environments::serialize() function when the site is not frozen - */ - public function testSerializeUnfrozen() - { - $this->site->expects($this->once()) - ->method('isFrozen') - ->willReturn(false); - $this->makeEnvironmentsFetchable(); - $expected = array_map(function ($env) { - return (array)$env; - }, $this->env_data); - $this->assertEquals($expected, $this->collection->serialize()); - } - - protected function makeEnvironmentsFetchable() - { - $this->env_data = [ - 'multidev' => (object)['key' => 'value',], - 'test' => (object)['key' => 'foo',], - 'dev' => (object)['key' => 'bar',], - 'new_version' => (object)['key' => null,], - 'live' => (object)['key' => 'hello',], - 'multidev2' => (object)['key' => 'C',], - ]; - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("sites/{$this->site->id}/environments"), - $this->equalTo(['options' => ['method' => 'get',],]) - ) - ->willReturn(['data' => $this->env_data,]); - $i = 0; - foreach ($this->env_data as $id => $attributes) { - $env = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $env->id = $id; - $env->method('isMultidev') - ->willReturn(!in_array($env->id, ['dev', 'test', 'live',])); - $env->method('serialize') - ->willReturn((array)$attributes); - $this->container->expects($this->at($i)) - ->method('get') - ->willReturn($env); - $this->environments[$env->id] = $env; - $i++; - } - } - - /** - * Sets up the tests for the Environments::create(string, Environment, array) function - * @return array In the order: - * Environment $from_env - * string $to_env_id - * Workflow $workflow - * Workflows $workflows - */ - protected function makeCreateMocks() - { - $from_env = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $from_env->id = 'from env id'; - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($workflows); - - return [ - $from_env, - 'to env', - $workflow, - $workflows, - ]; - } -} diff --git a/tests/unit_tests/Collections/MachineTokensTest.php b/tests/unit_tests/Collections/MachineTokensTest.php deleted file mode 100644 index 309dac0a0..000000000 --- a/tests/unit_tests/Collections/MachineTokensTest.php +++ /dev/null @@ -1,22 +0,0 @@ -getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $organization->expects($this->once()) - ->method('getWorkflows') - ->willReturn($workflows); - - $site = (object)['id' => '123']; - - $workflows->expects($this->once()) - ->method('create') - ->with('add_organization_site_membership', ['params' => ['site_id' => '123', 'role' => 'team_member']]); - - $org_site_membership = new OrganizationSiteMemberships(['organization' => $organization]); - $org_site_membership->create($site); - } -} diff --git a/tests/unit_tests/Collections/OrganizationUpstreamsTest.php b/tests/unit_tests/Collections/OrganizationUpstreamsTest.php deleted file mode 100644 index ad5e29f72..000000000 --- a/tests/unit_tests/Collections/OrganizationUpstreamsTest.php +++ /dev/null @@ -1,66 +0,0 @@ -organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization->id = 'org id'; - - $this->collection = new OrganizationUpstreams(['organization' => $this->organization,]); - $this->collection->setContainer($this->container); - } - - /** - * Tests the Upstreams::filterByName(string) function - */ - public function testFilterByName() - { - $data = [ - 'a' => (object)['id' => 'a', 'label' => 'WordPress',], - 'b' => (object)['id' => 'b', 'label' => 'Drupal 7',], - 'c' => (object)['id' => 'c', 'label' => 'Drupal8',], - ]; - $i = 0; - foreach ($data as $model_data) { - $options = ['collection' => $this->collection, 'id' => $model_data->id,]; - $this->container->expects($this->at($i++)) - ->method('get') - ->with(OrganizationUpstream::class, [$model_data, $options,]) - ->willReturn(new OrganizationUpstream($model_data, $options)); - } - foreach ($data as $model_data) { - $this->collection->add($model_data); - } - $unfiltered = $this->collection->all(); - $drupal_only = $this->collection->filterByName('Drupal')->all(); - - $this->assertEquals(count($data), count($unfiltered)); - $this->assertEquals(2, count($drupal_only)); - - array_shift($unfiltered); - $this->assertEquals($unfiltered, $drupal_only); - } -} diff --git a/tests/unit_tests/Collections/OrganizationUserMembershipsTest.php b/tests/unit_tests/Collections/OrganizationUserMembershipsTest.php deleted file mode 100644 index 53ab80fad..000000000 --- a/tests/unit_tests/Collections/OrganizationUserMembershipsTest.php +++ /dev/null @@ -1,76 +0,0 @@ -organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new OrganizationUserMemberships(['organization' => $this->organization,]); - } - - /** - * Tests the OrganizationUserMemberships::create($email, $role) function - */ - public function testCreate() - { - $params = ['user_email' => 'dev@example.com', 'role' => 'team_member',]; - $this->organization->id = '123'; - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->organization->expects($this->once()) - ->method('getWorkflows') - ->willReturn($workflows); - $workflows->expects($this->once()) - ->method('create') - ->with('add_organization_user_membership', compact('params')) - ->willReturn($workflow); - - $out = $this->model->create($params['user_email'], $params['role']); - $this->assertEquals($workflow, $out); - } - - /** - * Tests the OrganizationUserMemberships::getUrl() function, thereby testing its abstract parent - */ - public function testGetUrl() - { - $this->organization->id = 'org id'; - $expected = "organizations/{$this->organization->id}/memberships/users"; - $out = $this->model->getUrl(); - $this->assertEquals($expected, $out); - } -} diff --git a/tests/unit_tests/Collections/PaymentMethodsTest.php b/tests/unit_tests/Collections/PaymentMethodsTest.php deleted file mode 100644 index 32462f885..000000000 --- a/tests/unit_tests/Collections/PaymentMethodsTest.php +++ /dev/null @@ -1,115 +0,0 @@ -collection = $this->createPaymentMethods(); - } - - public function testGetByID() - { - $id = 'a'; - $model = $this->collection->get($id); - $this->assertEquals($id, $model->id); - } - - public function testGetByLabel() - { - $label = 'Visa - 2222'; - $model = $this->collection->get($label); - $this->assertEquals($label, $model->get('label')); - } - - public function testGetWhenNotFound() - { - $bad_id = 'invalid'; - $this->setExpectedException( - TerminusNotFoundException::class, - "Could not locate a payment method identified by $bad_id on this account." - ); - $not_model = $this->collection->get($bad_id); - $this->assertNull($not_model); - } - - public function testGetWhenMultipleMatches() - { - $shared_label = 'Visa - 1111'; - $this->setExpectedException( - TerminusException::class, - "More than one payment method matched $shared_label." - ); - $not_model = $this->collection->get($shared_label); - $this->assertNull($not_model); - } - - /** - * @return \PHPUnit_Framework_MockObject_MockObject - */ - protected function createPaymentMethods() - { - $model_data = [ - 'a' => (object)[ - 'label' => 'Visa - 1111', - 'id' => 'a', - 'filename' => '' - ], - 'b' => (object)[ - 'label' => 'Visa - 2222', - 'id' => 'b', - ], - 'c' => (object)[ - 'label' => 'Visa - 1111', - 'id' => 'c', - ], - ]; - $user = new User((object)['id' => 'USERID',]); - - $models = []; - foreach ($model_data as $id => $data) { - $models[$id] = $this->getMockBuilder(PaymentMethod::class) - ->setMethods(['get',]) - ->enableOriginalConstructor() - ->setConstructorArgs([$data, ['user' => $user,],]) - ->getMock(); - $models[$id]->method('get')->with($this->equalTo('label'))->willReturn($data->label); - } - - $methods = $this->getMockBuilder(PaymentMethods::class) - ->setMethods(['all']) - ->enableOriginalConstructor() - ->setConstructorArgs([['user' => $user,],]) - ->getMock(); - $methods->expects($this->any()) - ->method('all') - ->willReturn($models); - return $methods; - } -} diff --git a/tests/unit_tests/Collections/PlansTest.php b/tests/unit_tests/Collections/PlansTest.php deleted file mode 100644 index 4a8dbe323..000000000 --- a/tests/unit_tests/Collections/PlansTest.php +++ /dev/null @@ -1,79 +0,0 @@ -plan = $this->getMockBuilder(Plan::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->collection = new Plans(['site' => $this->site,]); - } - - /** - * Tests Plans::set() - */ - public function testSet() - { - $sku = 'this-is-a-sku'; - $this->plan->expects($this->once()) - ->method('getSku') - ->with() - ->willReturn($sku); - $this->site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('create') - ->with('change_site_service_level', ['params' => compact('sku'),]) - ->willReturn($this->workflow); - - $out = $this->collection->set($this->plan); - $this->assertEquals($this->workflow, $out); - } -} diff --git a/tests/unit_tests/Collections/SSHKeysTest.php b/tests/unit_tests/Collections/SSHKeysTest.php deleted file mode 100644 index 4c807bc01..000000000 --- a/tests/unit_tests/Collections/SSHKeysTest.php +++ /dev/null @@ -1,84 +0,0 @@ -request->expects($this->at(0)) - ->method('request') - ->with( - $this->url, - [ - 'form_params' => $key, - 'method' => 'post', - ] - ); - $this->collection->addKey($file); - unlink($file); - - $this->setExpectedException(TerminusException::class); - $this->collection->addKey($file); - } - - public function testDeleteAll() - { - $this->request->expects($this->at(0)) - ->method('request') - ->with($this->url, ['method' => 'delete']); - - $this->collection->deleteAll(); - } - - public function testFetch() - { - $data = [ - 'a' => 'ssh-rsa AAAAB3xxx0uj+Q== dev@example.com', - 'b' => 'ssh-rsa AAAAB3xxx000+Q== dev2@example.com', - ]; - $this->request->expects($this->once()) - ->method('request') - ->with($this->url, ['options' => ['method' => 'get']]) - ->willReturn(['data' => $data]); - - - $i = 0; - $models = []; - $options = ['collection' => $this->collection]; - foreach ($data as $id => $key) { - $options['id'] = $id; - $model_data = (object)['id' => $id, 'key' => $key]; - $model = $models[$id] = new SSHKey($model_data, $options); - $this->container->expects($this->at($i++)) - ->method('get') - ->with(SSHKey::class, [$model_data, $options]) - ->willReturn($model); - } - - $this->collection->fetch(); - $this->assertEquals($models, $this->collection->all()); - } -} diff --git a/tests/unit_tests/Collections/SavedTokensTest.php b/tests/unit_tests/Collections/SavedTokensTest.php deleted file mode 100644 index 3afad6d2c..000000000 --- a/tests/unit_tests/Collections/SavedTokensTest.php +++ /dev/null @@ -1,156 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data_store = $this->getMockBuilder(FileStore::class) - ->disableOriginalConstructor() - ->getMock(); - $this->token = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection = new SavedTokens(); - $this->collection->setConfig($this->config); - $this->collection->setContainer($this->container); - $this->collection->setDataStore($this->data_store); - } - - public function testAdd() - { - $user_id = 'user id'; - $model_data = (object)['email' => 'some@email.ext', 'id' => $user_id,]; - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(SavedToken::class), - $this->equalTo([$model_data, ['id' => $user_id, 'collection' => $this->collection,],]) - ) - ->willReturn($this->token); - $this->token->expects($this->once()) - ->method('setDataStore') - ->with($this->equalTo($this->data_store)); - - $out = $this->collection->add($model_data); - $this->assertEquals($this->token, $out); - } - - public function testCreate() - { - $token_string = 'token string'; - $email = 'some@email.ext'; - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->token->id = $email; - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(SavedToken::class), - $this->equalTo([(object)['token' => $token_string,], ['collection' => $this->collection,],]) - ) - ->willReturn($this->token); - $this->token->expects($this->once()) - ->method('setDataStore') - ->with($this->equalTo($this->data_store)); - $this->token->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn([$this->token->id, $token_string,]); - $this->token->expects($this->once()) - ->method('logIn') - ->with() - ->willReturn($user); - $user->expects($this->once()) - ->method('fetch') - ->with(); - $user->expects($this->once()) - ->method('get') - ->with($this->equalTo('email')) - ->willReturn($email); - $this->token->expects($this->once()) - ->method('set') - ->with( - $this->equalTo('email'), - $this->equalTo($email) - ); - $this->token->expects($this->once()) - ->method('saveToDir') - ->with(); - - $out = $this->collection->create($token_string); - $this->assertNull($out); - $this->assertNotNull($this->collection->get($email)); - } - - public function testDeleteAll() - { - $this->makeTokensFetchable(); - - $this->token->expects($this->once()) - ->method('delete') - ->with(); - - $out = $this->collection->deleteAll(); - $this->assertNull($out); - } - - protected function makeTokensFetchable() - { - $email = 'some@email.ext'; - $token = '111111111111111111111111111111111111111111111'; - $model_data = (object)['email' => $email, 'token' => $token, 'date' => time(),]; - - $this->data_store->expects($this->once()) - ->method('keys') - ->with() - ->willReturn([$email,]); - $this->data_store->expects($this->once()) - ->method('get') - ->with($email) - ->willReturn($model_data); - $this->container->expects($this->once()) - ->method('get') - ->willReturn($this->token); - } -} diff --git a/tests/unit_tests/Collections/SiteAuthorizationsTest.php b/tests/unit_tests/Collections/SiteAuthorizationsTest.php deleted file mode 100644 index d29c0257b..000000000 --- a/tests/unit_tests/Collections/SiteAuthorizationsTest.php +++ /dev/null @@ -1,68 +0,0 @@ -site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data = [ - 'authorized' => (object)[ - 'id' => 'authorized', - 'is_user_authorized' => true, - ], - 'unauthorized' => (object)[ - 'id' => 'unauthorized', - 'is_user_authorized' => false, - ], - ]; - $this->collection = new SiteAuthorizations(['data' => $this->data, 'site' => $this->site,]); - - $i = 0; - foreach ($this->data as $id => $item) { - $params = [$item, ['id' => $id, 'collection' => $this->collection,],]; - $this->container->expects($this->at($i++)) - ->method('get') - ->with(SiteAuthorization::class, $params) - ->willReturn(new SiteAuthorization($params[0], $params[1])); - } - - $this->collection->setContainer($this->container); - $this->collection->fetch(); - } - - /** - * Tests the SiteAuthorizations::can(string) function - */ - public function testCan() - { - $this->assertTrue($this->collection->can('authorized')); - $this->assertFalse($this->collection->can('unauthorized')); - } -} diff --git a/tests/unit_tests/Collections/SiteOrganizationMembershipsTest.php b/tests/unit_tests/Collections/SiteOrganizationMembershipsTest.php deleted file mode 100644 index 5b61901ff..000000000 --- a/tests/unit_tests/Collections/SiteOrganizationMembershipsTest.php +++ /dev/null @@ -1,80 +0,0 @@ -organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection = new SiteOrganizationMemberships(['site' => $this->site,]); - } - - public function testCreate() - { - $org_name = 'Organization Name'; - $role = 'some role'; - $this->site->id = 'site id'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($workflows); - $this->organization->expects($this->once()) - ->method('getLabel') - ->with() - ->willReturn($org_name); - $workflows->expects($this->once()) - ->method('create') - ->with( - 'add_site_organization_membership', - ['params' => ['organization_name' => $org_name, 'role' => $role,],] - ) - ->willReturn($workflow); - - $out = $this->collection->create($this->organization, $role); - $this->assertEquals($out, $workflow); - } -} diff --git a/tests/unit_tests/Collections/SiteUserMembershipsTest.php b/tests/unit_tests/Collections/SiteUserMembershipsTest.php deleted file mode 100644 index df46d096a..000000000 --- a/tests/unit_tests/Collections/SiteUserMembershipsTest.php +++ /dev/null @@ -1,43 +0,0 @@ -getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $site->expects($this->once()) - ->method('getWorkflows') - ->willReturn($workflows); - - $site->id = '123'; - - $workflows->expects($this->once()) - ->method('create') - ->with( - 'add_site_user_membership', - ['params' => ['user_email' => 'dev@example.com', 'role' => 'team_member']] - ); - - $org_site_membership = new SiteUserMemberships(['site' => $site]); - $org_site_membership->create('dev@example.com', 'team_member'); - } -} diff --git a/tests/unit_tests/Collections/SitesTest.php b/tests/unit_tests/Collections/SitesTest.php deleted file mode 100644 index c49cfa7e9..000000000 --- a/tests/unit_tests/Collections/SitesTest.php +++ /dev/null @@ -1,533 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - - $this->collection = new Sites(); - $this->collection->setSession($this->session); - $this->collection->setRequest($this->request); - $this->collection->setContainer($this->container); - } - - public function testCreate() - { - $params = ['param1', 'param2']; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('create_site'), - $this->equalTo(compact('params')) - ) - ->willReturn($this->workflow); - - $out = $this->collection->create($params); - $this->assertEquals($out, $this->workflow); - } - - public function testCreateForMigration() - { - $params = ['param1', 'param2']; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('create_site_for_migration'), - $this->equalTo(compact('params')) - ) - ->willReturn($this->workflow); - - $out = $this->collection->createForMigration($params); - $this->assertEquals($out, $this->workflow); - } - - public function testFetchWhichReturnsNoSites() - { - $this->collection = $this->makeSitesFetchableWithNoSiteData($this->collection); - $out = $this->collection->fetch(); - $this->assertEquals($this->collection, $out); - } - - public function testFetch() - { - $this->collection = $this->makeSitesFetchable($this->collection); - $out = $this->collection->fetch(); - $this->assertEquals($this->collection, $out); - } - - public function testFetchOrgOnly() - { - $this->collection = $this->makeSitesFetchable($this->collection); - $out = $this->collection->fetch(['org_id' => 'orgmembership',]); - $this->assertEquals($this->collection, $out); - } - - public function testFilterByName() - { - $this->collection = $this->makeSitesFetchable($this->collection); - - $this->site1->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn('site1'); - $this->site2->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn('site2'); - - $this->assertEquals($this->collection->all(), [ - '11111111-1111-1111-1111-111111111111' => $this->site1, - '22222222-2222-2222-2222-222222222222' => $this->site2, - ]); - $this->collection->filterByName('1'); - $this->assertEquals($this->collection->all(), ['11111111-1111-1111-1111-111111111111' => $this->site1,]); - } - - public function testFilterByOwner() - { - $this->collection = $this->makeSitesFetchable($this->collection); - - $this->site1->expects($this->once()) - ->method('get') - ->with($this->equalTo('owner')) - ->willReturn('person1'); - $this->site2->expects($this->once()) - ->method('get') - ->with($this->equalTo('owner')) - ->willReturn('person2'); - - $this->assertEquals($this->collection->all(), [ - '11111111-1111-1111-1111-111111111111' => $this->site1, - '22222222-2222-2222-2222-222222222222' => $this->site2, - ]); - $this->collection->filterByOwner('person2'); - $this->assertEquals($this->collection->all(), ['22222222-2222-2222-2222-222222222222' => $this->site2,]); - } - - public function testFilterByPlanName() - { - $this->collection = $this->makeSitesFetchable($this->collection); - - $this->site1->expects($this->once()) - ->method('get') - ->with($this->equalTo('plan_name')) - ->willReturn('Basic'); - $this->site2->expects($this->once()) - ->method('get') - ->with($this->equalTo('plan_name')) - ->willReturn('Sandbox'); - - $this->assertEquals($this->collection->all(), [ - '11111111-1111-1111-1111-111111111111' => $this->site1, - '22222222-2222-2222-2222-222222222222' => $this->site2, - ]); - $this->collection->filterByPlanName('basic'); - $this->assertEquals($this->collection->all(), ['11111111-1111-1111-1111-111111111111' => $this->site1,]); - } - - public function testFilterByTag() - { - $this->collection = $this->makeSitesFetchable($this->collection); - $tag = 'this tag'; - - $this->site1->tags = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site2->tags = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site1->tags->expects($this->once()) - ->method('has') - ->with($this->equalTo($tag)) - ->willReturn(true); - $this->site2->tags->expects($this->once()) - ->method('has') - ->with($this->equalTo($tag)) - ->willReturn(false); - - $this->assertEquals($this->collection->all(), [ - '11111111-1111-1111-1111-111111111111' => $this->site1, - '22222222-2222-2222-2222-222222222222' => $this->site2, - ]); - $this->collection->filterByTag($tag); - $this->assertEquals($this->collection->all(), ['11111111-1111-1111-1111-111111111111' => $this->site1,]); - } - - /** - * Tests the Sites::get(string) function when getting a site by UUID - */ - public function testGetByUUID() - { - $uuid = '11111111-1111-1111-1111-111111111111'; - $args = [(object)['id' => $uuid,], ['id' => $uuid, 'collection' => $this->collection,],]; - - $site = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs($args) - ->getMock(); - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Site::class), - $this->equalTo($args) - ) - ->willReturn($site); - $site->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($site); - - $out = $this->collection->get($uuid); - $this->assertEquals($out, $site); - } - - /** - * Tests the Sites::get(string) function when getting a site by name - */ - public function testGetByName() - { - $uuid = '11111111-1111-1111-1111-111111111111'; - $site_name = 'site-name'; - $args = [(object)['id' => $uuid,], ['id' => $uuid, 'collection' => $this->collection,],]; - - $site = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs($args) - ->getMock(); - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("site-names/$site_name"), - $this->equalTo(['method' => 'get',]) - ) - ->willReturn(['data' => (object)['id' => $uuid,],]); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Site::class), - $this->equalTo($args) - ) - ->willReturn($site); - $site->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($site); - - $out = $this->collection->get($site_name); - $this->assertEquals($out, $site); - } - - /** - * Tests the Sites::get(string) function when getting a site when the sites have been fetched already - */ - public function testGetFetched() - { - $uuid = '11111111-1111-1111-1111-111111111111'; - $this->collection = $this->makeSitesFetchable($this->collection); - $this->collection->fetch(); - - $out = $this->collection->get($uuid); - $this->assertEquals($out, $this->site1); - } - - /** - * Tests the Sites::get(string) function when getting a site by UUID which doesn't exist or belong to the user - */ - public function testGetWhenDNE() - { - $uuid = '11111111-1111-1111-1111-111111111111'; - $args = [(object)['id' => $uuid,], ['id' => $uuid, 'collection' => $this->collection,],]; - - $site = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs($args) - ->getMock(); - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Site::class), - $this->equalTo($args) - ) - ->willReturn($site); - $site->expects($this->once()) - ->method('fetch') - ->with() - ->will($this->throwException(new \Exception())); - - $this->setExpectedException( - TerminusException::class, - "Could not locate a site your user may access identified by $uuid." - ); - - $out = $this->collection->get($uuid); - $this->assertNull($out); - } - - /** - * Tests the Sites::nameIsTaken(string) function when the name is not taken - */ - public function testNameIsNotTaken() - { - $site_name = 'site name'; - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("site-names/$site_name"), - $this->equalTo(['method' => 'get',]) - ) - ->will($this->throwException(new \Exception('404 Not Found'))); - - $out = $this->collection->nameIsTaken($site_name); - $this->assertFalse($out); - } - - /** - * Tests the Sites::nameIsTaken(string) function when the name is taken - */ - public function testNameIsTaken() - { - $site_name = 'site name'; - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("site-names/$site_name"), - $this->equalTo(['method' => 'get',]) - ) - ->will($this->throwException(new \Exception('403 Forbidden'))); - - $out = $this->collection->nameIsTaken($site_name); - $this->assertTrue($out); - } - - /** - * Tests the Sites::nameIsTaken(string) function when the name is taken and the site belongs to the user - */ - public function testNameIsTakenAndMine() - { - $site_name = 'site-name'; - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("site-names/$site_name"), - $this->equalTo(['method' => 'get',]) - ) - ->willReturn(['data' => (object)['id' => 'site_id',]]); - - $out = $this->collection->nameIsTaken($site_name); - $this->assertTrue($out); - } - - /** - * @param Sites $sites Sites object to make fetchable - * @return Sites - */ - protected function makeSitesFetchable(Sites $sites) - { - $id1 = '11111111-1111-1111-1111-111111111111'; - $name1 = 'site1'; - $this->site1 = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs([ - (object)['id' => $id1, 'name' => $name1, 'owner' => 'person1',], - ['collection' => $sites,] - ]) - ->getMock(); - $site_org_membership = $this->getMockBuilder(SiteOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site1->memberships = [$site_org_membership, $site_org_membership,]; - $this->site1->method('getReferences')->with()->willReturn([$id1, $name1,]); - $id2 = '22222222-2222-2222-2222-222222222222'; - $name2 = 'site2'; - $this->site2 = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs([ - (object)['id' => $id2, 'name' => $name2, 'owner' => 'person2',], - ['collection' => $sites,] - ]) - ->getMock(); - $site_user_membership = $this->getMockBuilder(SiteUserMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site2->memberships = [$site_user_membership,]; - $this->site2->method('getReferences')->with()->willReturn([$id2, $name2,]); - $org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $org_membership = $this->getMockBuilder(SiteOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $org = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user->expects($this->any()) - ->method('getSites') - ->with() - ->willReturn([$this->site1, $this->site2,]); - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($org_memberships); - $org_memberships->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($org_memberships); - $org_memberships->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$org_membership,]); - $org_membership->expects($this->any()) - ->method('get') - ->with($this->equalTo('role')) - ->willReturn('admin'); - $org_membership->expects($this->any()) - ->method('getOrganization') - ->with() - ->willReturn($org); - $org->expects($this->any()) - ->method('getSites') - ->with() - ->willReturn([$this->site1,]); - - return $sites; - } - - /** - * @param Sites $sites Sites object to make fetchable - * @return Sites - */ - protected function makeSitesFetchableWithNoSiteData(Sites $sites) - { - $id1 = '11111111-1111-1111-1111-111111111111'; - $name1 = 'site1'; - $this->site1 = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs([ - (object)['id' => $id1, 'name' => $name1, 'owner' => 'person1',], - ['collection' => $sites,] - ]) - ->getMock(); - $this->site1->memberships = ['orgmembership', 'usermembership',]; - $this->site1->method('getReferences')->with()->willReturn([$id1, $name1,]); - $id2 = '22222222-2222-2222-2222-222222222222'; - $name2 = 'site2'; - $this->site2 = $this->getMockBuilder(Site::class) - ->enableOriginalConstructor() - ->setConstructorArgs([ - (object)['id' => $id2, 'name' => $name2, 'owner' => 'person2',], - ['collection' => $sites,] - ]) - ->getMock(); - $this->site2->memberships = ['usermembership',]; - $this->site2->method('getReferences')->with()->willReturn([$id2, $name2,]); - $org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user->expects($this->any()) - ->method('getSites') - ->with() - ->willReturn([$this->site1, $this->site2,]); - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($org_memberships); - $org_memberships->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($org_memberships); - $org_memberships->expects($this->once()) - ->method('all') - ->with() - ->willReturn(null); - - return $sites; - } -} diff --git a/tests/unit_tests/Collections/TagsTest.php b/tests/unit_tests/Collections/TagsTest.php deleted file mode 100644 index e258f564c..000000000 --- a/tests/unit_tests/Collections/TagsTest.php +++ /dev/null @@ -1,112 +0,0 @@ -getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_site_membership = $this->getMockBuilder(OrganizationSiteMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization->id = 'org uuid'; - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = 'site_uuid'; - - $this->org_site_membership->method('getOrganization')->willReturn($this->organization); - $this->org_site_membership->method('getSite')->willReturn($this->site); - - $this->collection = new Tags(['org_site_membership' => $this->org_site_membership,]); - $this->collection->setRequest($this->request); - $this->collection->setContainer($container); - } - - /** - * Tests Tags::create($tag) - */ - public function testCreate() - { - $tag_id = 'tag_id'; - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("organizations/{$this->organization->id}/tags"), - $this->equalTo( - [ - 'form_params' => [$tag_id => ['sites' => ['site_uuid',],],], - 'method' => 'put', - ] - ) - ); - $this->collection->create($tag_id); - } - - /** - * Tests Tags::fetch($options) - */ - public function testFetch() - { - $data = ['tag1',]; - $this->collection->fetch($data); - } - - /** - * Tests Tags::has($id) - */ - public function testHas() - { - $data = ['tag1',]; - $this->collection->fetch($data); - $this->assertTrue($this->collection->has($data[0])); - $this->assertFalse($this->collection->has('invalid')); - } - - /** - * Tests the Tags::getMembership() function - */ - public function testGetMembership() - { - $this->assertEquals($this->org_site_membership, $this->collection->getMembership()); - } -} diff --git a/tests/unit_tests/Collections/TerminusCollectionTest.php b/tests/unit_tests/Collections/TerminusCollectionTest.php deleted file mode 100644 index 370bbcf49..000000000 --- a/tests/unit_tests/Collections/TerminusCollectionTest.php +++ /dev/null @@ -1,162 +0,0 @@ -data = [ - (object)[ - 'id' => 'op-id-1', - 'type' => 'type', - 'description' => 'an operation', - 'result' => 'succeeded', - 'duration' => 100, - ], - (object)[ - 'id' => 'op-id-2', - 'type' => 'type2', - 'description' => 'another operation', - 'result' => null, - 'duration' => 0, - ], - (object)[ - 'id' => 'op-id-3', - 'type' => 'type', - 'description' => 'more operation', - 'result' => 'failed', - 'duration' => 300, - ], - ]; - } - - /** - * Tests the TerminusCollection::add(object) function - */ - public function testAdd() - { - $collection = $this->getMockForAbstractClass(TerminusCollection::class); - - $model_data = (object)[ - 'id' => '123', - 'foo' => 'bar', - ]; - $options = [ - 'id' => '123', - 'collection' => $collection, - 'baz' => 'boo', - ]; - $model = $this->getMockForAbstractClass(TerminusModel::class, [$model_data, $options,]); - - $this->container->expects($this->once()) - ->method('get') - ->with(TerminusModel::class, [$model_data, $options,]) - ->willReturn($model); - - $collection->setContainer($this->container); - $out = $collection->add($model_data, ['baz' => 'boo',]); - $this->assertEquals($model, $out); - } - - /** - * Tests the TerminusCollection data functions - */ - public function testDataFunctions() - { - $operations = new WorkflowOperations(['data' => $this->data,]); - $operations->setContainer($this->container); - - for ($i = 0; $i < count($this->data); $i++) { - $data = $this->data[$i]; - $op = $this->getMockBuilder(WorkflowOperation::class) - ->enableOriginalConstructor() - ->setConstructorArgs(compact('data')) - ->getMock(); - $this->container->expects($this->at($i)) - ->method('get') - ->with(WorkflowOperation::class, [$data, ['id' => $data->id, 'collection' => $operations,],]) - ->willReturn($op); - } - - $this->assertEquals($this->data, $operations->getData()); - - $ops = $operations->fetch()->all(); - foreach ($ops as $op) { - $this->assertInstanceOf(WorkflowOperation::class, $op); - } - - $operations->setData([]); - $this->assertEmpty($operations->getData()); - } - - /** - * Tests the TerminusCollection::get(string) function - */ - public function testGet() - { - $model_data = [ - 'id1' => (object)[ - 'id' => 'id1', - 'foo' => 'bar', - ], - 'id2' => (object)[ - 'id' => 'id2', - 'foo' => 'bar2', - ], - 'id3' => (object)[ - 'id' => 'id3', - 'foo' => 'bar3', - ], - ]; - $url = 'a url'; - $collection = new DummyCollection( - [ - 'url' => $url, - 'collected_class' => PaymentMethod::class, - 'data' => $model_data, - ] - ); - $collection->setContainer($this->container); - $collection->setRequest($this->request); - - $i = 0; - foreach ($model_data as $data) { - $params = ['id' => $data->id, 'collection' => $collection,]; - $this->container->expects($this->at($i++)) - ->method('get') - ->with( - $this->equalTo(PaymentMethod::class), - $this->equalTo([$data, $params,]) - ) - ->willReturn(new PaymentMethod($data, $params)); - } - - $out = $collection->get('id1'); - $this->assertInstanceOf(PaymentMethod::class, $out); - $this->assertEquals($model_data['id1']->foo, $out->get('foo')); - - $this->setExpectedException( - TerminusNotFoundException::class, - 'Could not find a ' . PaymentMethod::PRETTY_NAME . ' identified by invalid.' - ); - $out = $collection->get('invalid'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Collections/UpstreamsTest.php b/tests/unit_tests/Collections/UpstreamsTest.php deleted file mode 100644 index d9eef2141..000000000 --- a/tests/unit_tests/Collections/UpstreamsTest.php +++ /dev/null @@ -1,140 +0,0 @@ -organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user->method('getOrganizationMemberships') - ->with() - ->willReturn($this->user_org_memberships); - $this->user_org_membership->method('getOrganization') - ->willReturn($this->organization); - - $this->collection = new Upstreams(['user' => $this->user,]); - $this->collection->setContainer($this->container); - } - - /** - * Tests the Upstreams::add(object, array) and Upstreams::getOrganizationMemberships(Organization[]) functions - */ - public function testAdd() - { - $data = [ - 'a' => (object)['id' => 'a', 'organization_id' => '',], - 'b' => (object)['id' => 'b', 'organization_id' => 'DNE',], - 'c' => (object)['id' => 'c', 'organization_id' => 'orgID',], - ]; - $org = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $i = 0; - foreach ($data as $model_data) { - $options = ['collection' => $this->collection, 'id' => $model_data->id,]; - $this->container->expects($this->at($i++)) - ->method('get') - ->with(Upstream::class, [$model_data, $options,]) - ->willReturn(new Upstream($model_data, $options)); - } - $this->user_org_memberships->expects($this->at(0)) - ->method('get') - ->with($data['b']->organization_id) - ->will($this->throwException(new TerminusNotFoundException())); - $this->user_org_memberships->expects($this->at(1)) - ->method('get') - ->with($data['c']->organization_id) - ->willReturn($this->user_org_membership); - $this->user_org_membership->expects($this->once()) - ->method('getOrganization') - ->willReturn($this->user_org_membership); - - $upstreams = []; - foreach ($data as $model_data) { - $upstreams[$model_data->id] = $this->collection->add($model_data); - $this->assertEquals($model_data->id, $upstreams[$model_data->id]->id); - } - $this->assertNull($upstreams['a']->getOrganization()); - $this->assertNull($upstreams['b']->getOrganization()); - $this->assertEquals($org, $upstreams['c']->getOrganization()); - } - - /** - * Tests the Upstreams::filterByName(string) function - */ - public function testFilterByName() - { - $data = [ - 'a' => (object)['id' => 'a', 'label' => 'WordPress', 'organization_id' => '',], - 'b' => (object)['id' => 'b', 'label' => 'Drupal 7', 'organization_id' => '',], - 'c' => (object)['id' => 'c', 'label' => 'Drupal8', 'organization_id' => '',], - ]; - $i = 0; - foreach ($data as $model_data) { - $options = ['collection' => $this->collection, 'id' => $model_data->id,]; - $this->container->expects($this->at($i++)) - ->method('get') - ->with(Upstream::class, [$model_data, $options,]) - ->willReturn(new Upstream($model_data, $options)); - } - foreach ($data as $model_data) { - $this->collection->add($model_data); - } - $unfiltered = $this->collection->all(); - $drupal_only = $this->collection->filterByName('Drupal')->all(); - - $this->assertEquals(count($data), count($unfiltered)); - $this->assertEquals(2, count($drupal_only)); - - array_shift($unfiltered); - $this->assertEquals($unfiltered, $drupal_only); - } -} diff --git a/tests/unit_tests/Collections/UserOwnedCollectionTest.php b/tests/unit_tests/Collections/UserOwnedCollectionTest.php deleted file mode 100644 index 5acf53a28..000000000 --- a/tests/unit_tests/Collections/UserOwnedCollectionTest.php +++ /dev/null @@ -1,48 +0,0 @@ - 'USERID']); - $this->collection = new $this->class(['user' => $user]); - $this->collection->setRequest($this->request); - $this->collection->setContainer($this->container); - } - - /** - * Tests the UserOwnedCollection::getUrl() function - */ - public function testGetURL() - { - $this->assertEquals($this->url, $this->collection->getUrl()); - } -} diff --git a/tests/unit_tests/Collections/UserSiteMembershipsTest.php b/tests/unit_tests/Collections/UserSiteMembershipsTest.php deleted file mode 100644 index fab432dd3..000000000 --- a/tests/unit_tests/Collections/UserSiteMembershipsTest.php +++ /dev/null @@ -1,47 +0,0 @@ -getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - $user = $this->getMockBuilder(User::class) - ->enableOriginalConstructor() - ->setConstructorArgs(['id' => 'user id',]) - ->getMock(); - - $request->expects($this->once()) - ->method('pagedRequest') - ->with($this->equalTo(str_replace('USERID', '', $this->url))) - ->willReturn(['data' => (object)[],]); - - $collection = new UserSiteMemberships(['user' => $user,]); - $collection->setRequest($request); - $out = $collection->fetch(); - $this->assertEquals($out, $collection); - } -} diff --git a/tests/unit_tests/Collections/WorkflowsTest.php b/tests/unit_tests/Collections/WorkflowsTest.php deleted file mode 100644 index 884a872cd..000000000 --- a/tests/unit_tests/Collections/WorkflowsTest.php +++ /dev/null @@ -1,272 +0,0 @@ - [ - 'id' => 'a', - 'has_operation_log_output' => true, - 'result' => 'succeeded', - 'finished_at' => 4, - 'created_at' => 1, - ], - 'b' => [ - 'id' => 'b', - 'has_operation_log_output' => false, - 'result' => 'failed', - 'finished_at' => 5, - 'created_at' => 4, - ], - 'c' => [ - 'id' => 'c', - 'has_operation_log_output' => true, - 'finished_at' => 2, - 'created_at' => 3, - ], - 'd' => [ - 'id' => 'd', - 'has_operation_log_output' => true, - 'result' => 'succeeded', - 'finished_at' => 1, - 'created_at' => 2, - ], - ]; - - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['all']) - ->getMock(); - - $models = []; - foreach ($data as $id => $model_data) { - $models[$id] = new Workflow((object)$model_data, ['collection' => $workflows,]); - } - $workflows->expects($this->any()) - ->method('all') - ->willReturn($models); - - $this->assertEquals($models, $workflows->all()); - $this->assertEquals([$models['a'], $models['b'], $models['d']], array_values($workflows->allFinished())); - $this->assertEquals([$models['a'], $models['d']], array_values($workflows->allWithLogs())); - $this->assertEquals($models['a'], $workflows->findLatestWithLogs()); - $this->assertEquals($data['b']['created_at'], $workflows->lastCreatedAt()); - $this->assertEquals($data['b']['finished_at'], $workflows->lastFinishedAt()); - } - - /** - * Tests several workflows collection evaluation functions when there are no workflows - * lastCreatedAt - * lastFinishedAt - */ - public function testAllComesBackEmpty() - { - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['all',]) - ->getMock(); - - $workflows->expects($this->any()) - ->method('all') - ->willReturn([]); - - $this->assertNull($workflows->lastCreatedAt()); - $this->assertNull($workflows->lastFinishedAt()); - } - - /** - * Tests several workflow array-getting functions when returning nulls because no workflows fit the criteria: - * allFinished - * allWithLogs - * findLatestWithLogs - */ - public function testAllIncompleteAndWithoutLogs() - { - $data = [ - ['id' => 'a', 'has_operation_log_output' => false,], - ['id' => 'b', 'has_operation_log_output' => false,], - ['id' => 'c', 'has_operation_log_output' => false,], - ['id' => 'd', 'has_operation_log_output' => false,], - ]; - - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['all']) - ->getMock(); - - $models = []; - foreach ($data as $model_data) { - $models[] = new Workflow((object)$model_data, ['collection' => $workflows]); - } - $workflows->expects($this->any()) - ->method('all') - ->willReturn($models); - - $this->assertEquals($models, $workflows->all()); - $this->assertEquals([], $workflows->allFinished()); - $this->assertEquals([], $workflows->allWithLogs()); - $this->assertNull($workflows->findLatestWithLogs()); - } - - public function testCreate() - { - $type = "test"; - $model_data = (object)[ - 'id' => 'a', - ]; - $params = ['a' => '1', 'b' => 2]; - $this->request->expects($this->once()) - ->method('request') - ->with( - 'TESTURL', - [ - 'method' => 'post', - 'form_params' => [ - 'type' => $type, - 'params' => (object)$params, - ], - ] - ) - ->willReturn(['data' => $model_data]); - - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['getUrl', 'add']) - ->getMock(); - $workflows->expects($this->once()) - ->method('getURl') - ->willReturn('TESTURL'); - - $options = ['id' => $model_data->id, 'collection' => $workflows]; - $model = new Workflow($model_data, $options); - $this->container->expects($this->at(0)) - ->method('get') - ->with(Workflow::class, [$model_data, $options]) - ->willReturn($model); - - $workflows->expects($this->once()) - ->method('add') - ->willReturn($model); - - $workflows->setRequest($this->request); - $workflows->setContainer($this->container); - - $workflows->create('test', ['params' => $params]); - } - - public function testFetchWithOperations() - { - $data = [ - (object)['id' => 'a', 'result' => 'succeeded', 'finished_at' => 4, 'created_at' => 1], - (object)['id' => 'b', 'result' => 'failed', 'finished_at' => 5, 'created_at' => 4], - (object)['id' => 'c', 'finished_at' => 2, 'created_at' => 3], - ]; - $this->request->expects($this->once()) - ->method('request') - ->with( - 'TESTURL', - [ - 'options' => [ - 'method' => 'get', - ], - 'query' => ['hydrate' => 'operations'], - ] - ) - ->willReturn(['data' => $data]); - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['getUrl', 'add']) - ->getMock(); - $workflows->expects($this->once()) - ->method('getURl') - ->willReturn('TESTURL'); - - foreach ($data as $i => $model_data) { - $workflows->expects($this->at($i + 1)) - ->method('add') - ->with($model_data); - } - - $workflows->setRequest($this->request); - - $workflows->fetchWithOperations(); - } - - public function testGetOwnerObject() - { - $site = new Site((object)['id' => 'site_id']); - $environments = new Environments(['site' => $site]); - $env = new Environment((object)['id' => 'env_id'], ['collection' => $environments]); - $user = new User((object)['id' => 'user_id']); - $org = new Organization((object)['id' => 'org_id']); - - $workflows = new Workflows(['environment' => $env]); - $this->assertEquals($env, $workflows->getOwnerObject()); - $this->assertEquals('sites/site_id/environments/env_id/workflows', $workflows->getUrl()); - - $workflows = new Workflows(['site' => $site]); - $this->assertEquals($site, $workflows->getOwnerObject()); - $this->assertEquals('sites/site_id/workflows', $workflows->getUrl()); - - $workflows = new Workflows(['user' => $user]); - $this->assertEquals($user, $workflows->getOwnerObject()); - $this->assertEquals('users/user_id/workflows', $workflows->getUrl()); - - $session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $session->expects($this->once()) - ->method('getUser') - ->willReturn($user); - $workflows = new Workflows(['organization' => $org]); - $workflows->setSession($session); - $this->assertEquals($org, $workflows->getOwnerObject()); - $this->assertEquals('users/user_id/organizations/org_id/workflows', $workflows->getUrl()); - } - - /** - * Tests Workflows::getUrl when the url property has a value - */ - public function testGetUrl() - { - $site = new Site((object)['id' => 'site_id',]); - $environments = new Environments(['site' => $site,]); - $env = new Environment((object)['id' => 'env_id',], ['collection' => $environments,]); - $workflows = new Workflows(['environment' => $env,]); - $url1 = $workflows->getUrl(); // Assigns the value to the property - $url2 = $workflows->getUrl(); // Returns the already-assigned value of that property - $this->assertEquals($url1, $url2); - } -} diff --git a/tests/unit_tests/Commands/AliasesCommandTest.php b/tests/unit_tests/Commands/AliasesCommandTest.php deleted file mode 100644 index 7134f81b0..000000000 --- a/tests/unit_tests/Commands/AliasesCommandTest.php +++ /dev/null @@ -1,243 +0,0 @@ -fixtures = new AliasFixtures(); - $this->output = new BufferedOutput(); - - $this->home_dir = realpath($this->fixtures->mktmpdir()); - - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->getConfig()->method('get') - ->with($this->equalTo('user_home')) - ->willReturn($this->home_dir); - $this->sites->method('fetch') - ->willReturn(null); - $this->sites->method('ids') - ->willReturn([$this->site->id]); - $this->sites->method('serialize') - ->willReturn([$this->site->id => ['id' => $this->site->id, 'name' => 'site1']]); - $this->site->method('get') - ->willReturn('site1'); - - $this->command = new AliasesCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->command->setContainer($this->container); - $this->command->setConfig($this->config); - $this->command->setSites($this->sites); - $this->command->setOutput($this->output); - } - - /** - * @inheritdoc - */ - protected function tearDown() - { - $this->fixtures->cleanup(); - } - - /** - * Tests the aliases command when writing to a the default file - */ - public function testAliases() - { - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Fetching site information to build Drush aliases...') - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{count} sites found.'), - $this->equalTo(['count' => 1]) - ); - $this->logger->expects($this->at(2)) - ->method('log') - ->with( - $this->equalTo('debug'), - $this->equalTo("Emitting aliases via {emitter}"), - $this->equalTo(['emitter' => 'Pantheon\Terminus\Helpers\AliasEmitters\AliasesDrushRcEmitter']) - ); - $this->logger->expects($this->at(3)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->stringContains(".drush/pantheon.aliases.drushrc.php") - ); - $this->logger->expects($this->at(4)) - ->method('log') - ->with( - $this->equalTo('debug'), - $this->equalTo("Emitting aliases via {emitter}"), - $this->equalTo(['emitter' => 'Pantheon\Terminus\Helpers\AliasEmitters\DrushSitesYmlEmitter']) - ); - $this->logger->expects($this->at(5)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->stringContains(".drush/sites/pantheon") - ); - - $out = $this->command->aliases(); - $this->assertNull($out); - - if (substr(PHP_OS, 0, 3) == 'WIN') { - $this->MarkTestSkipped("Temp file handling on Windows is not working correctly in this test."); - } - - $expected_drush_8_alias_path = $this->home_dir . '/.drush/pantheon.aliases.drushrc.php'; - $this->assertFileExists($expected_drush_8_alias_path); - $drush_8_aliases = file_get_contents($expected_drush_8_alias_path); - - $this->assertEquals($this->expectedDrush8AliasOutput(), trim($drush_8_aliases)); - - $expected_drush_9_alias_path = $this->home_dir . '/.drush/sites/pantheon/site1.site.yml'; - $this->assertFileExists($expected_drush_9_alias_path); - $drush_9_aliases = file_get_contents($expected_drush_9_alias_path); - $expected = <<<__EOT__ -'*': - host: appserver.\${env-name}.abc.drush.in - paths: - files: files - uri: \${env-name}-site1.pantheonsite.io - user: \${env-name}.abc - ssh: - options: '-p 2222 -o "AddressFamily inet"' - tty: false -__EOT__; - $this->assertEquals($expected, trim($drush_9_aliases)); - } - - /** - * Tests the aliases command when it is outputting to the screen - */ - public function testAliasesPrint() - { - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Fetching site information to build Drush aliases...') - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{count} sites found.'), - $this->equalTo(['count' => 1]) - ); - $this->logger->expects($this->at(2)) - ->method('log') - ->with( - $this->equalTo('debug'), - $this->equalTo("Emitting aliases via {emitter}"), - $this->equalTo(['emitter' => 'Pantheon\Terminus\Helpers\AliasEmitters\PrintingEmitter']) - ); - $this->logger->expects($this->at(3)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Displaying Drush 8 alias file contents.') - ); - - $this->container->expects($this->never()) - ->method('get'); - - $out = $this->command->aliases([ - 'print' => true, - 'location' => null, - 'all' => false, - 'only' => '', - 'type' => 'all', - 'base' => '~/.drush', - 'db-url' => true, - 'target' => 'pantheon', - ]); - $this->assertNull($out); - - $this->assertEquals($this->expectedDrush8AliasOutput(), trim($this->output->fetch())); - } - - /** - * Return the expected output for Drush 8 alias files. - */ - protected function expectedDrush8AliasOutput() - { - $expected = <<<__EOT__ - '\${env-name}-site1.pantheonsite.io', - 'remote-host' => 'appserver.\${env-name}.abc.drush.in', - 'remote-user' => '\${env-name}.abc', - 'ssh-options' => '-p 2222 -o "AddressFamily inet"', - 'path-aliases' => array( - '%files' => 'files', - ), - ); -__EOT__; - return $expected; - } -} diff --git a/tests/unit_tests/Commands/ArtCommandTest.php b/tests/unit_tests/Commands/ArtCommandTest.php deleted file mode 100644 index ffcbf4209..000000000 --- a/tests/unit_tests/Commands/ArtCommandTest.php +++ /dev/null @@ -1,151 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->local_machine_helper = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - $this->filesystem = $this->getMockBuilder(Filesystem::class) - ->disableOriginalConstructor() - ->getMock(); - $this->output = $this->getMockBuilder(OutputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('assets_dir')) - ->willReturn($this->filepath); - $this->container->expects($this->once()) - ->method('get') - ->with($this->equalTo(LocalMachineHelper::class)) - ->willReturn($this->local_machine_helper); - $this->local_machine_helper->expects($this->once()) - ->method('getFilesystem') - ->with() - ->willReturn($this->filesystem); - - $this->command = new ArtCommand(); - $this->command->setConfig($this->config); - $this->command->setOutput($this->output); - $this->command->setContainer($this->container); - } - - /** - * Tests the art command - */ - public function testArt() - { - $artwork = 'some art'; - $name = 'hello'; - $path = "{$this->filepath}/$name.txt"; - - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($this->equalTo($path)) - ->willReturn(true); - $this->local_machine_helper->expects($this->once()) - ->method('readFile') - ->with($this->equalTo($path)) - ->willReturn($artwork); - - $out = $this->command->art($name); - $this->assertInternalType('string', $out); - } - - /** - * Tests the art command when displaying a random artwork - */ - public function testArtRandom() - { - $artwork = 'some art'; - - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($this->stringContains($this->filepath)) - ->willReturn(true); - $this->local_machine_helper->expects($this->once()) - ->method('readFile') - ->with($this->stringContains($this->filepath)) - ->willReturn($artwork); - - $out = $this->command->art(); - $this->assertInternalType('string', $out); - } - - /** - * Tests the art command when the requested artwork DNE - */ - public function testArtDNE() - { - $name = 'invalid'; - - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($this->stringContains($this->filepath)) - ->willReturn(false); - $this->local_machine_helper->expects($this->never()) - ->method('readFile'); - - $this->setExpectedException( - TerminusNotFoundException::class, - "There is no source for the requested $name artwork." - ); - - $out = $this->command->art($name); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Auth/AuthTest.php b/tests/unit_tests/Commands/Auth/AuthTest.php deleted file mode 100644 index c8b8bdc74..000000000 --- a/tests/unit_tests/Commands/Auth/AuthTest.php +++ /dev/null @@ -1,30 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/Auth/LoginCommandTest.php b/tests/unit_tests/Commands/Auth/LoginCommandTest.php deleted file mode 100644 index 2e5716006..000000000 --- a/tests/unit_tests/Commands/Auth/LoginCommandTest.php +++ /dev/null @@ -1,169 +0,0 @@ -token = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->token->expects($this->any()) - ->method('session') - ->willReturn($this->session); - - $this->tokens = $this->getMockBuilder(SavedTokens::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->expects($this->any()) - ->method('getTokens') - ->willReturn($this->tokens); - - $this->command = new LoginCommand(); - $this->command->setConfig($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the auth:login command where the machine token is explicitly given - */ - public function testLogInWithMachineToken() - { - $token_string = 'token_string'; - - $this->tokens->expects($this->once()) - ->method('get') - ->with($this->equalTo($token_string)) - ->will($this->throwException(new \Exception())); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Logging in via machine token.') - ); - $this->tokens->expects($this->once()) - ->method('create') - ->with($this->equalTo($token_string)); - - $out = $this->command->logIn(['machine-token' => $token_string,]); - $this->assertNull($out); - } - - /** - * Tests the auth:login command where the email address referencing a saved machine token is given - */ - public function testLogInWithEmail() - { - $email = "email@ddr.ess"; - - $this->tokens->expects($this->once()) - ->method('get') - ->with($this->equalTo($email)) - ->willReturn($this->token); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Logging in via machine token.') - ); - $this->token->expects($this->once()) - ->method('logIn') - ->with(); - - $out = $this->command->logIn(compact('email')); - $this->assertNull($out); - } - - /** - * Tests the auth:login command when no info is given but a single machine token has been saved - */ - public function testLogInWithSoloSavedToken() - { - $email = "email@ddr.ess"; - - $this->tokens->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->token,]); - $this->token->expects($this->once()) - ->method('get') - ->with($this->equalTo('email')) - ->willReturn($email); - $this->logger->expects($this->exactly(2)) - ->method('log') - ->withConsecutive( - [ - $this->equalTo('notice'), - $this->equalTo('Found a machine token for {email}.'), - $this->equalTo(compact('email')) - ], - [ - $this->equalTo('notice'), - $this->equalTo('Logging in via machine token.') - ] - ); - $this->token->expects($this->once()) - ->method('logIn'); - - $out = $this->command->logIn(); - $this->assertNull($out); - } - - /** - * Tests the auth:login command when no data was given and there are no saved machine tokens - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage Please visit the dashboard to generate a machine token: - */ - public function testCannotLogInWithoutTokens() - { - $this->tokens->expects($this->once()) - ->method('all')->willReturn([]); - - $out = $this->command->logIn(); - $this->assertNull($out); - } - - /** - * Tests the auth:login command when no data was given and there are multiple saved machine tokens - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage Tokens were saved for the following email addresses: - */ - public function testCannotLogInWithoutIndicatingWhichToken() - { - $this->tokens->expects($this->once()) - ->method('all') - ->willReturn([$this->token, $this->token,]); - $this->tokens->expects($this->once()) - ->method('ids') - ->willReturn(['token1', 'token2',]); - - $out = $this->command->logIn(); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Auth/LogoutCommandTest.php b/tests/unit_tests/Commands/Auth/LogoutCommandTest.php deleted file mode 100644 index 44b52d256..000000000 --- a/tests/unit_tests/Commands/Auth/LogoutCommandTest.php +++ /dev/null @@ -1,71 +0,0 @@ -command = new LogoutCommand(); - $this->command->setConfig($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the auth:logout command - */ - public function testLogInWithMachineToken() - { - $token = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - $token->expects($this->once()) - ->method('delete'); - - $token2 = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - $token2->expects($this->once()) - ->method('delete'); - - $tokens = $this->getMockBuilder(SavedTokens::class) - ->disableOriginalConstructor() - ->setMethods(['all']) - ->getMock(); - $tokens->expects($this->any()) - ->method('all') - ->willReturn([$token, $token2,]); - - $this->session->expects($this->any()) - ->method('getTokens') - ->willReturn($tokens); - $this->session->expects($this->once()) - ->method('destroy'); - - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Your saved machine tokens have been deleted and you have been logged out.') - ); - - $out = $this->command->logOut(); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Auth/WhoamiCommandTest.php b/tests/unit_tests/Commands/Auth/WhoamiCommandTest.php deleted file mode 100644 index 13ed10ad5..000000000 --- a/tests/unit_tests/Commands/Auth/WhoamiCommandTest.php +++ /dev/null @@ -1,81 +0,0 @@ -command = new WhoamiCommand(); - $this->command->setConfig($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the auth:whoami command When the user is logged in - */ - public function testWhoAmI() - { - $email = "email@ddr.ess"; - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($user); - $user->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(compact('email')); - - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(true); - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->whoAmI(); - $this->assertInstanceOf(PropertyList::class, $out); - } - - /** - * Tests the auth:whoami command When the user is logged out - */ - public function testWhoAmIWhenIAmLoggedOut() - { - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(false); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('You are not logged in.') - ); - - $out = $this->command->whoAmI(); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Backup/Automatic/DisableCommandTest.php b/tests/unit_tests/Commands/Backup/Automatic/DisableCommandTest.php deleted file mode 100644 index c3aaabe50..000000000 --- a/tests/unit_tests/Commands/Backup/Automatic/DisableCommandTest.php +++ /dev/null @@ -1,47 +0,0 @@ -command = new DisableCommand($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the backup:automatic:disable command - */ - public function testDisableBackupSchedule() - { - $this->environment->id = 'scheduled'; - - $this->backups->expects($this->once()) - ->method('cancelBackupSchedule') - ->with(); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Backup schedule successfully canceled.') - ); - - $out = $this->command->disableSchedule('mysite.scheduled'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Backup/Automatic/EnableCommandTest.php b/tests/unit_tests/Commands/Backup/Automatic/EnableCommandTest.php deleted file mode 100644 index da8f728f9..000000000 --- a/tests/unit_tests/Commands/Backup/Automatic/EnableCommandTest.php +++ /dev/null @@ -1,59 +0,0 @@ -command = new EnableCommand($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Tests the backup:automatic:enable command - */ - public function testSetAutomaticSchedule() - { - $this->environment->id = 'some_env'; - $schedule_info = ['day' => 'Caturday',]; - - $this->backups->expects($this->once()) - ->method('setBackupSchedule') - ->with($this->equalTo($schedule_info)) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Backup schedule successfully set.') - ); - - $out = $this->command->enableSchedule('mysite.some_env', $schedule_info); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Backup/Automatic/InfoCommandTest.php b/tests/unit_tests/Commands/Backup/Automatic/InfoCommandTest.php deleted file mode 100644 index cd1d0fbf7..000000000 --- a/tests/unit_tests/Commands/Backup/Automatic/InfoCommandTest.php +++ /dev/null @@ -1,78 +0,0 @@ -command = new InfoCommand($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the backup:automatic:info command when the schedule is set - */ - public function testAutomaticBackupSchedule() - { - $this->environment->id = 'scheduled'; - $schedule_info = [ - 'daily_backup_hour' => '13 UTC', - 'weekly_backup_day' => 'Caturday', - ]; - - $this->backups->expects($this->once()) - ->method('getBackupSchedule') - ->with() - ->willReturn($schedule_info); - - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->getSchedule('mysite.scheduled'); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($out->getArrayCopy(), $schedule_info); - } - - /** - * Tests the backup:automatic:info command when the schedule is not set - */ - public function testAutomaticBackupScheduleNotSet() - { - $this->environment->id = 'scheduled'; - $schedule_info = [ - 'daily_backup_hour' => null, - 'weekly_backup_day' => null, - ]; - - $this->backups->expects($this->once()) - ->method('getBackupSchedule') - ->with() - ->willReturn($schedule_info); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Backups are not currently scheduled to be run.') - ); - - $out = $this->command->getSchedule('mysite.scheduled'); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($out->getArrayCopy(), $schedule_info); - } -} diff --git a/tests/unit_tests/Commands/Backup/BackupCommandTest.php b/tests/unit_tests/Commands/Backup/BackupCommandTest.php deleted file mode 100644 index 0b5203f11..000000000 --- a/tests/unit_tests/Commands/Backup/BackupCommandTest.php +++ /dev/null @@ -1,50 +0,0 @@ -backups = $this->getMockBuilder(Backups::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->method('getBackups')->willReturn($this->backups); - - $this->backup = $this->getMockBuilder(Backup::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/Backup/CreateCommandTest.php b/tests/unit_tests/Commands/Backup/CreateCommandTest.php deleted file mode 100644 index 196b6f5d5..000000000 --- a/tests/unit_tests/Commands/Backup/CreateCommandTest.php +++ /dev/null @@ -1,151 +0,0 @@ -command = new CreateCommand($this->sites); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the backup:create command without any options - */ - public function testCreateBackup() - { - $this->environment->id = 'env_id'; - - $this->backups->expects($this->once()) - ->method('create') - ->with($this->equalTo(['element' => null, 'keep-for' => 365,])) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Created a backup of the {env} environment.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->create("mysite.{$this->environment->id}"); - $this->assertNull($out); - } - - /** - * Tests the backup:create command with a set number of days to keep the backup for - */ - public function testCreateBackupWithKeepFor() - { - $this->environment->id = 'env_id'; - $params = ['keep-for' => 55,]; - - $this->backups->expects($this->once()) - ->method('create') - ->with($this->equalTo($params + ['element' => null,])) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Created a backup of the {env} environment.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->create("mysite.{$this->environment->id}", $params); - $this->assertNull($out); - } - - /** - * Tests the backup:create command when creating a backup for a specific element - */ - public function testCreateBackupElement() - { - $this->environment->id = 'env_id'; - $params = ['element' => 'db',]; - - $this->backups->expects($this->once()) - ->method('create') - ->with($this->equalTo(['element' => 'database', 'keep-for' => Backup::DEFAULT_TTL,])) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Created a backup of the {env} environment.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->create("mysite.{$this->environment->id}", $params); - $this->assertNull($out); - } - - /** - * Tests the backup:create command when creating a backup for a specific element and a set number of days to keep - */ - public function testCreateBackupElementWithKeepFor() - { - $this->environment->id = 'env_id'; - $params = ['element' => 'db', 'keep-for' => 89,]; - - $this->backups->expects($this->once()) - ->method('create') - ->with($this->equalTo(['element' => 'database', 'keep-for' => 89,])) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Created a backup of the {env} environment.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->create("mysite.{$this->environment->id}", $params); - $this->assertNull($out); - } - - /** - * Tests the backup:create command when the workflow fails - */ - public function testCreateBackupFailure() - { - $this->environment->id = 'env_id'; - - $this->backups->expects($this->once()) - ->method('create') - ->with($this->equalTo(['element' => null, 'keep-for' => 365,])) - ->will($this->throwException(new TerminusException())); - - $this->logger->expects($this->never()) - ->method('log'); - - $this->setExpectedException(TerminusException::class); - - $out = $this->command->create("mysite.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Backup/GetCommandTest.php b/tests/unit_tests/Commands/Backup/GetCommandTest.php deleted file mode 100644 index c2aa91151..000000000 --- a/tests/unit_tests/Commands/Backup/GetCommandTest.php +++ /dev/null @@ -1,144 +0,0 @@ -command = new GetCommand($this->sites); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the backup:get command with file - */ - public function testGetBackupWithFile() - { - $test_filename = 'test.tar.gz'; - $test_download_url = 'http://download'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($test_filename) - ->willReturn($this->backup); - - $this->backup->expects($this->once()) - ->method('getArchiveURL') - ->willReturn($test_download_url); - - $output = $this->command->get('mysite.dev', ['file' => $test_filename,]); - $this->assertEquals($output, $test_download_url); - } - - /** - * Tests the backup:get command with an element - */ - public function testGetBackupWithElement() - { - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with('database') - ->willReturn([$this->backup]); - - $this->backup->expects($this->once()) - ->method('getArchiveURL') - ->willReturn('http://download'); - - $output = $this->command->get('mysite.dev', ['element' => 'db',]); - $this->assertEquals($output, 'http://download'); - } - - /** - * Tests the backup:get command with file that doesn't exist - */ - public function testGetBackupWithInvalidFile() - { - $bad_file_name = 'no-file.tar.gz'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($this->equalTo($bad_file_name)) - ->will($this->throwException(new TerminusNotFoundException())); - - $this->setExpectedException(TerminusNotFoundException::class); - - $out = $this->command->get('mysite.dev', ['file' => $bad_file_name,]); - $this->assertNull($out); - } - - /** - * Tests the backup:get command when there are no backups to get - */ - public function testGetBackupNoBackups() - { - $element = 'some_element'; - $site = 'site'; - $this->environment->id = 'env'; - - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with($this->equalTo($element)) - ->willReturn([]); - $this->backup->expects($this->never()) - ->method('getArchiveURL'); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site); - $this->setExpectedException( - TerminusNotFoundException::class, - "No backups available. Create one with `terminus backup:create $site.{$this->environment->id}`" - ); - - $out = $this->command->get("$site.{$this->environment->id}", compact('element')); - $this->assertNull($out); - } - - /** - * Tests the backup:get command when saving the backup to a file - */ - public function testGetBackupToFile() - { - $test_filename = 'test.tar.gz'; - $test_download_url = 'http://download'; - $test_save_path = '/tmp/file.tar.gz'; - $request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($test_filename) - ->willReturn($this->backup); - $this->backup->expects($this->once()) - ->method('getArchiveURL') - ->willReturn($test_download_url); - $request->expects($this->once()) - ->method('download') - ->with( - $this->equalTo($test_download_url), - $this->equalTo($test_save_path) - ); - - $this->command->setRequest($request); - $out = $this->command->get('mysite.dev', ['file' => $test_filename, 'to' => $test_save_path,]); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Backup/InfoCommandTest.php b/tests/unit_tests/Commands/Backup/InfoCommandTest.php deleted file mode 100644 index 27fd11514..000000000 --- a/tests/unit_tests/Commands/Backup/InfoCommandTest.php +++ /dev/null @@ -1,77 +0,0 @@ -expected_data = [ - 'file' => 'file name', - 'size' => 'file size', - 'date' => 459880805, - 'expiry' => 3615640805, - 'initiator' => 'backup initiator', - 'url' => $url, - ]; - - $this->backup->method('getArchiveURL')->willReturn($url); - $this->backup->method('serialize')->willReturn($this->expected_data); - - $this->command = new InfoCommand($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the backup:info command with file - */ - public function testInfoBackupWithFile() - { - $test_filename = 'test.tar.gz'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($test_filename) - ->willReturn($this->backup); - - $output = $this->command->info('mysite.dev', ['file' => $test_filename,]); - $this->assertInstanceOf(PropertyList::class, $output); - $this->assertEquals($this->expected_data, $output->getArrayCopy()); - } - - /** - * Tests the backup:info command with an element - */ - public function testInfoBackupWithElement() - { - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with('database') - ->willReturn([$this->backup,]); - - $output = $this->command->info('mysite.dev', ['element' => 'db',]); - $this->assertInstanceOf(PropertyList::class, $output); - $this->assertEquals($this->expected_data, $output->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Backup/ListCommandTest.php b/tests/unit_tests/Commands/Backup/ListCommandTest.php deleted file mode 100644 index c47f1a688..000000000 --- a/tests/unit_tests/Commands/Backup/ListCommandTest.php +++ /dev/null @@ -1,90 +0,0 @@ -sample_data = [ - 'data', - 'data2', - ]; - $this->backups->method('getCollectedClass')->willReturn(Backup::class); - - $this->backups->expects($this->once()) - ->method('filterForFinished') - ->willReturn($this->backups); - $this->backups->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->sample_data); - - $this->command = new ListCommand($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the backup:list command without any elements - */ - public function testListBackups() - { - $out = $this->command->listBackups('mysite.dev'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($this->sample_data, $out->getArrayCopy()); - } - - /** - * Tests the backup:list command when the options array appears in the second parameter - */ - public function testListBackupsWithOptionsInSecondParameter() - { - $element = "don't care"; - - $this->backups->expects($this->once()) - ->method('filterForElement') - ->with($element) - ->willReturn($this->backups); - - $out = $this->command->listBackups('mysite.dev', compact('element')); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($this->sample_data, $out->getArrayCopy()); - } - - /** - * Tests the backup:list command with 'files' element - */ - public function testListBackupsWithSomeOtherElement() - { - $element = 'files'; - - $this->backups->expects($this->once()) - ->method('filterForElement') - ->with($element) - ->willReturn($this->backups); - - $out = $this->command->listBackups('mysite.dev', compact('element')); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($this->sample_data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Backup/RestoreCommandTest.php b/tests/unit_tests/Commands/Backup/RestoreCommandTest.php deleted file mode 100644 index e1de9e622..000000000 --- a/tests/unit_tests/Commands/Backup/RestoreCommandTest.php +++ /dev/null @@ -1,210 +0,0 @@ -command = new RestoreCommand($this->sites); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the backup:restore command with file when the restoration is successful - */ - public function testRestoreBackupWithFileSucceeds() - { - $this->environment->id = 'env_id'; - $test_filename = 'test.tar.gz'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($test_filename) - ->willReturn($this->backup); - $this->expectConfirmation(); - - $this->backup->expects($this->once()) - ->method('restore') - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Restored the backup to {env}.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->restoreBackup("mysite.{$this->environment->id}", ['file' => $test_filename,]); - $this->assertNull($out); - } - - /** - * Tests the backup:restore command with file when the restoration is unsuccessful - */ - public function testRestoreBackupWithFileFails() - { - $this->environment->id = 'env_id'; - $test_filename = 'test.tar.gz'; - $message = 'Successfully queued restore_site'; - $better_message = 'There was an error while restoring your backup.'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($test_filename) - ->willReturn($this->backup); - $this->expectConfirmation(); - - $this->backup->expects($this->once()) - ->method('restore') - ->willReturn($this->workflow); - - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new TerminusException($message))); - - $this->logger->expects($this->never()) - ->method('log'); - - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - - $this->setExpectedException(TerminusException::class, $better_message); - - $out = $this->command->restoreBackup("mysite.{$this->environment->id}", ['file' => $test_filename,]); - $this->assertNull($out); - } - - /** - * Tests the backup:restore command with file that doesn't exist - */ - public function testRestoreBackupWithInvalidFile() - { - $bad_file_name = 'no-file.tar.gz'; - - $this->backups->expects($this->once()) - ->method('getBackupByFileName') - ->with($this->equalTo($bad_file_name)) - ->will($this->throwException(new TerminusNotFoundException())); - - $this->setExpectedException(TerminusNotFoundException::class); - - $out = $this->command->restoreBackup('mysite.dev', ['file' => $bad_file_name,]); - $this->assertNull($out); - } - - /** - * Tests the backup:restore command with an element when the backup operation succeeds - */ - public function testRestoreBackupWithElementSucceeds() - { - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with('database') - ->willReturn([$this->backup,]); - $this->expectConfirmation(); - - $this->backup->expects($this->once()) - ->method('restore') - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Restored the backup to {env}.'), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->restoreBackup('mysite.dev', ['element' => 'db',]); - $this->assertNull($out); - } - - /** - * Tests the backup:restore command with an element when the backup operation has failed - */ - public function testRestoreBackupWithElementFails() - { - $message = 'Successfully queued restore_site'; - $better_message = 'There was an error while restoring your backup.'; - - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with('database') - ->willReturn([$this->backup,]); - $this->expectConfirmation(); - - $this->backup->expects($this->once()) - ->method('restore') - ->willReturn($this->workflow); - - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new TerminusException($message))); - - $this->logger->expects($this->never()) - ->method('log'); - - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - - $this->setExpectedException(TerminusException::class, $better_message); - - $out = $this->command->restoreBackup('mysite.dev', ['element' => 'db',]); - $this->assertNull($out); - } - - /** - * Tests the backup:restore command when there isn't a backup to restore - */ - public function testRestoreNoBackups() - { - $site_name = 'site name'; - $this->environment->id = 'dev'; - $element = 'code'; - - $this->backups->expects($this->once()) - ->method('getFinishedBackups') - ->with($this->equalTo($element)) - ->willReturn([]); - - $this->backup->expects($this->never())->method('restore'); - $this->logger->expects($this->never())->method('log'); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->setExpectedException( - TerminusNotFoundException::class, - "No backups available. Create one with `terminus backup:create $site_name.{$this->environment->id}`" - ); - - $out = $this->command->restoreBackup("$site_name.{$this->environment->id}", compact('element')); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Branch/ListCommandTest.php b/tests/unit_tests/Commands/Branch/ListCommandTest.php deleted file mode 100644 index 95906df75..000000000 --- a/tests/unit_tests/Commands/Branch/ListCommandTest.php +++ /dev/null @@ -1,44 +0,0 @@ - ['id' => 'master', 'sha' => 'xxx'], - 'another' => ['id' => 'another', 'sha' => 'yyy'], - ]; - - $branches_collection = $this->getMockBuilder(Branches::class) - ->disableOriginalConstructor() - ->getMock(); - $branches_collection->expects($this->once()) - ->method('serialize') - ->willReturn($branches_info); - $branches_collection->method('getCollectedClass')->willReturn(Branch::class); - - $this->site->expects($this->once()) - ->method('getBranches') - ->willReturn($branches_collection); - - $command = new ListCommand(); - $command->setSites($this->sites); - $out = $command->listBranches('my-site'); - $this->assertEquals($branches_info, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/CommandTestCase.php b/tests/unit_tests/Commands/CommandTestCase.php deleted file mode 100644 index 19e8a49f6..000000000 --- a/tests/unit_tests/Commands/CommandTestCase.php +++ /dev/null @@ -1,193 +0,0 @@ -config; - } - - /** - * @param TerminusConfig $config - * @return CommandTestCase - */ - public function setConfig($config) - { - $this->config = $config; - return $this; - } - - /** - * @return mixed - */ - public function getContainer() - { - return $this->container; - } - - /** - * @param mixed $container - * @return CommandTestCase - */ - public function setContainer($container) - { - $this->container = $container; - return $this; - } - - /** - * @return int - */ - public function getStatusCode() - { - return $this->status_code; - } - - /** - * @inheritdoc - */ - protected function setUp() - { - if (!$this->config) { - $this->setConfig( - $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock() - ); - } - if (!$this->container) { - $this->setContainer( - $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock() - ); - } - - // These are not used by every test but are useful for SiteAwareInterface commands. Which is a lot of them. - // Use `$command->setSites($this->site());` after you create your command to test. - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environments = $this->getMockBuilder(Environments::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environments->method('getCollectedClass')->willReturn(Environment::class); - - $this->environments->method('get') - ->willReturn($this->environment); - - $this->site->method('getEnvironments')->willReturn($this->environments); - $this->site->id = 'abc'; - - $this->site2 = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site2->id = 'def'; - - // Always say yes to confirmations - $this->input = $this->getMockBuilder(Input::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->sites = $this->getMockBuilder(Sites::class) - ->disableOriginalConstructor() - ->getMock(); - $this->sites->method('getCollectedClass')->willReturn(Site::class); - - $this->sites->method('get') - ->willReturn($this->site); - - $this->output = $this->getMockBuilder(OutputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - - // A lot of commands output to a logger. - // To use this call `$command->setLogger($this->logger);` after you create your command to test. - $this->logger = $this->getMockBuilder(NullLogger::class) - ->setMethods(array('log')) - ->getMock(); - } - - /** - * Responds to the confirmation prompt - */ - protected function expectConfirmation() - { - $this->input->expects($this->once()) - ->method('hasOption') - ->with('yes') - ->willReturn(true); - $this->input->expects($this->once()) - ->method('getOption') - ->with('yes') - ->willReturn(true); - } -} diff --git a/tests/unit_tests/Commands/Connection/InfoCommandTest.php b/tests/unit_tests/Commands/Connection/InfoCommandTest.php deleted file mode 100644 index cb5edc421..000000000 --- a/tests/unit_tests/Commands/Connection/InfoCommandTest.php +++ /dev/null @@ -1,44 +0,0 @@ -command = new InfoCommand($this->getConfig()); - - // use the basic mocked sites from CommandTestCase - $this->command->setSites($this->sites); - } - - /** - * Ensure connection:info delegates to the Environment::connectionInfo() - */ - public function testConnectionInfo() - { - // should delegate to the environment model appropriately - $this->environment->expects($this->once())->method('connectionInfo') - ->willReturn(['foo' => 'bar']); - - // command execution - $out = $this->command->connectionInfo('dummy-site.dev'); - - // should return the correct type - $this->assertInstanceOf(PropertyList::class, $out); - } -} diff --git a/tests/unit_tests/Commands/Connection/SetCommandTest.php b/tests/unit_tests/Commands/Connection/SetCommandTest.php deleted file mode 100644 index 8523871cf..000000000 --- a/tests/unit_tests/Commands/Connection/SetCommandTest.php +++ /dev/null @@ -1,197 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new SetCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Exercises connection:set git mode - */ - public function testConnectionSetSuccess() - { - $message = 'successful workflow'; - $mode = 'mode'; - - $this->environment->expects($this->once()) - ->method('hasUncommittedChanges') - ->with() - ->willReturn(false); - $this->environment->expects($this->once()) - ->method('changeConnectionMode') - ->with($mode) - ->willReturn($this->workflow); - // workflow succeeded - $this->workflow->expects($this->once()) - ->method('getMessage') - ->willReturn($message); - // should display a notice about the mode switch - $this->logger->expects($this->once()) - ->method('log') - ->with('notice', $message); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.dummy-env', $mode); - } - - /** - * Exercises connection:set when Environment::changeConnectionMode(mode) throws an error we're not expecting to use - */ - public function testConnectionSetThrowsError() - { - $message = 'Chimken nuggers in bork soss'; - $mode = 'mode'; - - $this->environment->expects($this->once()) - ->method('hasUncommittedChanges') - ->with() - ->willReturn(false); - $this->environment->expects($this->once()) - ->method('changeConnectionMode') - ->with($mode) - ->will($this->throwException(new TerminusException($message))); - // workflow succeeded - $this->workflow->expects($this->never()) - ->method('getMessage'); - // should display a notice about the mode switch - $this->logger->expects($this->never()) - ->method('log'); - $this->setExpectedException(TerminusException::class, $message); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.dummy-env', $mode); - } - - /** - * Exercises connection:set when trying to change into the same mode as the environment is already on - */ - public function testConnectionSetToSameMode() - { - $mode = 'mode'; - $message = "This environment is already set to $mode."; - - $this->environment->expects($this->once()) - ->method('hasUncommittedChanges') - ->with() - ->willReturn(false); - $this->environment->expects($this->once()) - ->method('changeConnectionMode') - ->with($mode) - ->will($this->throwException(new TerminusException($message))); - // workflow succeeded - $this->workflow->expects($this->never()) - ->method('getMessage'); - // should display a notice about the mode switch - $this->logger->expects($this->once()) - ->method('log') - ->with('notice', $message); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.dummy-env', $mode); - } - - /** - * Exercises connection:set command when changing from SFTP but the environment has uncommitted changes - */ - public function testConnectionSetWithUncommittedChanges() - { - $message = 'successful workflow'; - $mode = 'mode'; - - $this->environment->expects($this->once()) - ->method('hasUncommittedChanges') - ->with() - ->willReturn(true); - // should display a notice about the mode switch - $this->logger->expects($this->at(0)) - ->method('log') - ->with('warning'); - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('changeConnectionMode') - ->with($mode) - ->willReturn($this->workflow); - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($message) - ); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.dummy-env', $mode); - } - - /** - * Exercises connection:set with invalid test environment - */ - public function testConnectionSetInvalidTestEnv() - { - $this->environment->id = 'test'; - - $this->setExpectedException( - TerminusException::class, - 'Connection mode cannot be set on the test environment' - ); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.test', 'any-mode'); - } - - /** - * Exercises connection:set with invalid live environment - */ - public function testConnectionSetInvalidLiveEnv() - { - $this->environment->id = 'live'; - - $this->setExpectedException( - TerminusException::class, - 'Connection mode cannot be set on the live environment' - ); - - // trigger command call expectations - $this->command->connectionSet('dummy-site.live', 'any-mode'); - } -} diff --git a/tests/unit_tests/Commands/Dashboard/ViewCommandTest.php b/tests/unit_tests/Commands/Dashboard/ViewCommandTest.php deleted file mode 100644 index 28526da8f..000000000 --- a/tests/unit_tests/Commands/Dashboard/ViewCommandTest.php +++ /dev/null @@ -1,138 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new ViewCommand(); - $this->command->setSites($this->sites); - $this->command->setContainer($this->container); - $this->command->setSession($this->session); - } - - /** - * Tests the dashboard:view command when opening to the user view - */ - public function testViewUserDashboard() - { - $dashboard_url = 'https://dashboard.pantheon.io/users/some_uuid'; - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->container->expects($this->never())->method('get'); - $this->site->expects($this->never())->method('dashboardUrl'); - $this->environment->expects($this->never())->method('dashboardUrl'); - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - $user->expects($this->once()) - ->method('dashboardUrl') - ->with() - ->willReturn($dashboard_url); - - $url = $this->command->view(null, ['print' => true,]); - $this->assertEquals($dashboard_url, $url); - } - - /** - * Tests the dashboard:view command when opening to a site view - */ - public function testViewSiteDashboardOpen() - { - $dashboard_url = 'https://dashboard.pantheon.io/sites/some_uuid'; - $local_machine_helper = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->expects($this->never())->method('dashboardUrl'); - $this->session->expects($this->never())->method('getUser'); - $this->site->expects($this->once()) - ->method('dashboardUrl') - ->with() - ->willReturn($dashboard_url); - $this->container->expects($this->once()) - ->method('get') - ->willReturn($local_machine_helper); - $local_machine_helper->expects($this->once()) - ->method('openUrl') - ->with($this->equalTo($dashboard_url)); - - $out = $this->command->view('my-site'); - $this->assertNull($out); - } - - /** - * Tests the dashboard:view command when opening to a site view - */ - public function testViewSiteDashboardPrint() - { - $dashboard_url = 'https://dashboard.pantheon.io/sites/some_uuid'; - - $this->container->expects($this->never())->method('get'); - $this->environment->expects($this->never())->method('dashboardUrl'); - $this->session->expects($this->never())->method('getUser'); - $this->site->expects($this->once()) - ->method('dashboardUrl') - ->with() - ->willReturn($dashboard_url); - - $url = $this->command->view('my-site', ['print' => true,]); - $this->assertEquals($dashboard_url, $url); - } - - /** - * Tests the dashboard:view command when opening to an environment view - */ - public function testViewEnvDashboard() - { - $dashboard_url = 'https://dashboard.pantheon.io/sites/some_uuid/dev'; - - $this->container->expects($this->never())->method('get'); - $this->site->expects($this->never())->method('dashboardUrl'); - $this->session->expects($this->never())->method('getUser'); - $this->environment->expects($this->once()) - ->method('dashboardUrl') - ->with() - ->willReturn($dashboard_url); - - $url = $this->command->view('my-site.dev', ['print' => true,]); - $this->assertEquals($dashboard_url, $url); - } -} diff --git a/tests/unit_tests/Commands/Domain/AddCommandTest.php b/tests/unit_tests/Commands/Domain/AddCommandTest.php deleted file mode 100644 index 6af2dc208..000000000 --- a/tests/unit_tests/Commands/Domain/AddCommandTest.php +++ /dev/null @@ -1,54 +0,0 @@ -command = new AddCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the domain:add command - */ - public function testAdd() - { - $site_name = 'site_name'; - $domain = 'some.domain'; - $this->environment->id = 'env_id'; - - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - - $this->domains->expects($this->once()) - ->method('create') - ->with($this->equalTo($domain)); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Added {domain} to {site}.{env}'), - $this->equalTo(['domain' => $domain, 'site' => $site_name, 'env' => $this->environment->id,]) - ); - - $out = $this->command->add("$site_name.{$this->environment->id}", $domain); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Domain/DNSCommandTest.php b/tests/unit_tests/Commands/Domain/DNSCommandTest.php deleted file mode 100644 index b6c9739df..000000000 --- a/tests/unit_tests/Commands/Domain/DNSCommandTest.php +++ /dev/null @@ -1,85 +0,0 @@ -dns_records = $this->getMockBuilder(DNSRecord::class) - ->disableOriginalConstructor() - ->getMock(); - $this->dns_record = $this->getMockBuilder(DNSRecords::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new DNSCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the domain:dns command - */ - public function testDNS() - { - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $this->domain->id = 'domain_id'; - $expected = [ - 'id' => $this->domain->id, - 'detected_value' => 'detected_value', - 'value' => 'target_value', - 'status' => 'status', - 'status_message' => 'status message', - 'type' => 'type', - ]; - - $this->domains->expects($this->once()) - ->method('filter') - ->willReturn($this->domains); - $this->domains->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->domain,]); - - $this->domain->expects($this->once()) - ->method('getDNSRecords') - ->with() - ->willReturn($this->dns_records); - $this->dns_records->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($expected); - - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->getRecommendations("$site_name.{$this->environment->id}"); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Domain/DomainTest.php b/tests/unit_tests/Commands/Domain/DomainTest.php deleted file mode 100644 index 0f21b7a32..000000000 --- a/tests/unit_tests/Commands/Domain/DomainTest.php +++ /dev/null @@ -1,40 +0,0 @@ -domains = $this->getMockBuilder(Domains::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->method('getDomains')->willReturn($this->domains); - - $this->domain = $this->getMockBuilder(Domain::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/Domain/ListCommandTest.php b/tests/unit_tests/Commands/Domain/ListCommandTest.php deleted file mode 100644 index 0a57bca46..000000000 --- a/tests/unit_tests/Commands/Domain/ListCommandTest.php +++ /dev/null @@ -1,47 +0,0 @@ -command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the domain:list command - */ - public function testList() - { - $dummy_info = ['123' => ['domain' => 'domain', 'zone' => 'zone']]; - - $this->domains->method('getCollectedClass')->willReturn(Domain::class); - $this->domains->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($dummy_info); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->listDomains('site_name.env_id'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($dummy_info, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Domain/LookupCommandTest.php b/tests/unit_tests/Commands/Domain/LookupCommandTest.php deleted file mode 100644 index 773930cef..000000000 --- a/tests/unit_tests/Commands/Domain/LookupCommandTest.php +++ /dev/null @@ -1,95 +0,0 @@ -command = new LookupCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - - $this->site->id = 'site_id'; - $this->site_name = 'site_name'; - - $this->sites->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->site,]); - - $this->domains->expects($this->any()) - ->method('fetch') - ->with() - ->willReturn($this->domains); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('This operation may take a long time to run.') - ); - } - - /** - * Tests the domain:lookup command - */ - public function testLookup() - { - $domain = 'some.domain'; - - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($this->site_name); - - $this->domains->expects($this->any()) - ->method('has') - ->with($this->equalTo($domain)) - ->willReturn(true); - - $out = $this->command->lookup($domain); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\PropertyList', $out); - - $array_out = $out->getArrayCopy(); - $this->assertEquals($array_out['site_id'], $this->site->id); - $this->assertEquals($array_out['site_name'], $this->site_name); - $this->assertEquals($array_out['env_id'], 'dev'); - } - - /** - * Tests the domain:lookup command when the domain is not present - */ - public function testLookupDNE() - { - $domain = 'some.domain'; - - $this->domains->expects($this->any()) - ->method('has') - ->with($this->equalTo($domain)) - ->willReturn(false); - - $this->setExpectedException(TerminusNotFoundException::class); - - $out = $this->command->lookup($domain); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php b/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php deleted file mode 100644 index d5ce40f67..000000000 --- a/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php +++ /dev/null @@ -1,52 +0,0 @@ -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 deleted file mode 100644 index 2ff192c35..000000000 --- a/tests/unit_tests/Commands/Domain/Primary/PrimaryDomainCommandsTestBase.php +++ /dev/null @@ -1,79 +0,0 @@ -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 deleted file mode 100644 index d8a14499f..000000000 --- a/tests/unit_tests/Commands/Domain/Primary/RemoveCommandTest.php +++ /dev/null @@ -1,27 +0,0 @@ -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/Commands/Domain/RemoveCommandTest.php b/tests/unit_tests/Commands/Domain/RemoveCommandTest.php deleted file mode 100644 index 6ab36901e..000000000 --- a/tests/unit_tests/Commands/Domain/RemoveCommandTest.php +++ /dev/null @@ -1,58 +0,0 @@ -command = new RemoveCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the domain:remove command - */ - public function testRemove() - { - $site_name = 'site_name'; - $domain = 'some.domain'; - $this->environment->id = 'env_id'; - - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - - $this->domains->expects($this->once()) - ->method('get') - ->with($this->equalTo($domain)) - ->willReturn($this->domain); - $this->domain->expects($this->once()) - ->method('delete') - ->with(); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Removed {domain} from {site}.{env}'), - $this->equalTo(['domain' => $domain, 'site' => $site_name, 'env' => $this->environment->id,]) - ); - - $out = $this->command->remove("$site_name.{$this->environment->id}", $domain); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/DummyCommand.php b/tests/unit_tests/Commands/DummyCommand.php deleted file mode 100644 index c4771c0a2..000000000 --- a/tests/unit_tests/Commands/DummyCommand.php +++ /dev/null @@ -1,21 +0,0 @@ -io(); - } -} diff --git a/tests/unit_tests/Commands/Env/ClearCacheCommandTest.php b/tests/unit_tests/Commands/Env/ClearCacheCommandTest.php deleted file mode 100644 index 2ab0bee32..000000000 --- a/tests/unit_tests/Commands/Env/ClearCacheCommandTest.php +++ /dev/null @@ -1,56 +0,0 @@ -command = new ClearCacheCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - public function testGetClearCache() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $site_name = 'site_name'; - $this->environment->id = 'site_id'; - $this->environment->expects($this->once()) - ->method('clearCache') - ->with() - ->willReturn($workflow); - $this->site->expects($this->any()) - ->method('get') - ->willReturn(null); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Caches cleared on {site}.{env}.') - ); - - $out = $this->command->clearCache("$site_name.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Env/CloneContentCommandTest.php b/tests/unit_tests/Commands/Env/CloneContentCommandTest.php deleted file mode 100644 index 856f09484..000000000 --- a/tests/unit_tests/Commands/Env/CloneContentCommandTest.php +++ /dev/null @@ -1,274 +0,0 @@ -command = new CloneContentCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - public function testCloneFiles() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - $target_env = 'test'; - - $this->environment->expects($this->any()) - ->method('getName') - ->willReturn($this->environment->id); - $this->environment->expects($this->exactly(2)) - ->method('isInitialized') - ->with() - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($site_name); - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('cloneFiles') - ->willReturn($this->workflow); - $this->workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Cloning files from {source} environment to {target} environment'), - $this->equalTo(['source' => $this->environment->id, 'target' => $this->environment->id,]) - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command->cloneContent( - "$site_name.{$this->environment->id}", - $target_env, - ['files-only' => true,] - ); - } - - public function testCloneDatabase() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - $target_env = 'test'; - - $this->environment->expects($this->any()) - ->method('getName') - ->willReturn($this->environment->id); - $this->environment->expects($this->exactly(2)) - ->method('isInitialized') - ->with() - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($site_name); - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('cloneDatabase') - ->with($this->environment, ['clear_cache' => false, 'updatedb' => false,]) - ->willReturn($this->workflow); - $this->workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Cloning database from {source} environment to {target} environment'), - $this->equalTo(['source' => $this->environment->id, 'target' => $this->environment->id,]) - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command->cloneContent( - "$site_name.{$this->environment->id}", - $target_env, - ['cc' => false, 'db-only' => true, 'updatedb' => false,] - ); - } - - public function testCloneAll() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - $target_env = 'test'; - - $this->environment->expects($this->any()) - ->method('getName') - ->willReturn($this->environment->id); - $this->environment->expects($this->exactly(2)) - ->method('isInitialized') - ->with() - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($site_name); - $this->expectConfirmation(); - - $worlflow1 = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->expects($this->once()) - ->method('cloneFiles') - ->willReturn($worlflow1); - $worlflow1->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - $worlflow2 = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->expects($this->once()) - ->method('cloneDatabase') - ->with($this->environment, ['clear_cache' => false, 'updatedb' => false,]) - ->willReturn($worlflow2); - $worlflow2->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Cloning files from {source} environment to {target} environment'), - $this->equalTo(['source' => $this->environment->id, 'target' => $this->environment->id,]) - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - $this->logger->expects($this->at(2)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Cloning database from {source} environment to {target} environment'), - $this->equalTo(['source' => $this->environment->id, 'target' => $this->environment->id,]) - ); - $this->logger->expects($this->at(3)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command->cloneContent("$site_name.{$this->environment->id}", $target_env); - } - - /** - * Tests env:clone command when attempting to clone to an uninitialized environment - */ - public function testCloneFilesToUninitialized() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - $target_env = 'test'; - - $this->environment->expects($this->at(0)) - ->method('isInitialized') - ->with() - ->willReturn(true); - $this->environment->expects($this->at(1)) - ->method('isInitialized') - ->with() - ->willReturn(false); - $this->environment->expects($this->never()) - ->method('cloneFiles'); - $this->workflow->expects($this->never()) - ->method('getMessage'); - $this->logger->expects($this->never(0)) - ->method('log'); - - $this->environment->method('getName')->willReturn($this->environment->id); - $this->environment->method('getSite')->willReturn($this->site); - $this->site->method('getName')->willReturn($site_name); - - $this->setExpectedException( - TerminusException::class, - "$site_name's {$this->environment->id} environment cannot be cloned into because it has not been " - . "initialized. Please run `env:deploy $site_name.{$this->environment->id}` to initialize it." - ); - - $this->command->cloneContent( - "$site_name.{$this->environment->id}", - $target_env, - ['files-only' => true,] - ); - } - - /** - * Tests env:clone command when attempting to clone from an uninitialized environment - */ - public function testCloneFilesFromUninitialized() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - $target_env = 'test'; - - $this->environment->expects($this->once()) - ->method('isInitialized') - ->with() - ->willReturn(false); - $this->environment->expects($this->never()) - ->method('cloneFiles'); - $this->workflow->expects($this->never()) - ->method('getMessage'); - $this->logger->expects($this->never(0)) - ->method('log'); - - $this->environment->method('getName')->willReturn($this->environment->id); - $this->environment->method('getSite')->willReturn($this->site); - $this->site->method('getName')->willReturn($site_name); - - $this->setExpectedException( - TerminusException::class, - "$site_name's {$this->environment->id} environment cannot be cloned from because it has not been " - . "initialized. Please run `env:deploy $site_name.{$this->environment->id}` to initialize it." - ); - - $this->command->cloneContent("$site_name.{$this->environment->id}", $target_env, ['files-only' => true,]); - } - - public function testCloneNone() - { - $this->setExpectedException(TerminusException::class, 'You cannot specify both --db-only and --files-only'); - $this->command->cloneContent('mysite.dev', 'test', ['db-only' => true, 'files-only' => true,]); - } - - /** - * Tests env:clone command when attempting to clone an environment to itself - */ - public function testCloneSelf() - { - $site_name = 'site-name'; - $this->environment->id = 'dev'; - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo( - 'The clone has been skipped because the source and target environments are the same.' - ) - ); - - $this->command->cloneContent("$site_name.{$this->environment->id}", $this->environment->id); - } -} diff --git a/tests/unit_tests/Commands/Env/CodeLogCommandTest.php b/tests/unit_tests/Commands/Env/CodeLogCommandTest.php deleted file mode 100644 index 6196dede1..000000000 --- a/tests/unit_tests/Commands/Env/CodeLogCommandTest.php +++ /dev/null @@ -1,86 +0,0 @@ -command = new CodeLogCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - - $this->commits = $this->getMockBuilder(Commits::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->method('getCommits')->willReturn($this->commits); - - $this->commit_1_attribs = [ - 'datetime' => '2016-09-21T12:21:18', - 'author' => 'Daisy Duck', - 'labels' => ['test', 'dev'], - 'hash' => 'c65e638f03cabc7b97e686bb9de843b7173e329a', - 'message' => 'Add some new code', - ]; - $this->commit_1 = new Commit((object)$this->commit_1_attribs); - $this->commit_2_attribs = [ - 'datetime' => '2016-09-16T06:53:48', - 'author' => 'Donald Duck', - 'labels' => ['test', 'dev'], - 'hash' => 'bccb7d4972a458e6c788c46bd1afb2de47d88ee3', - 'message' => 'Remove some old code', - ]; - $this->commit_2 = new Commit((object)$this->commit_2_attribs); - } - - /** - * Tests the env:log command success with all parameters - */ - public function testLog() - { - $data = ['1' => [ - 'datetime' => '2016-09-21T12:21:18', - 'author' => 'Daisy Duck', - 'labels' => ['test', 'dev'], - 'hash' => 'c65e638f03cabc7b97e686bb9de843b7173e329a', - 'message' => 'Add some new code', - ]]; - $this->environment->id = 'dev'; - $this->commits->method('serialize') - ->willReturn($data); - - $out = $this->command->codeLog('mysite.dev'); - - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($data, $out->getArrayCopy()); - } - - /** - * Tests the env:deploy command where no log is available - */ - public function testDeployNoCode() - { - $this->environment->id = 'dev'; - $this->commits->method('serialize') - ->willReturn([]); - - $out = $this->command->codeLog('mysite.dev'); - - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals(count($out), 0); - } -} diff --git a/tests/unit_tests/Commands/Env/CommitCommandTest.php b/tests/unit_tests/Commands/Env/CommitCommandTest.php deleted file mode 100644 index 554dccf22..000000000 --- a/tests/unit_tests/Commands/Env/CommitCommandTest.php +++ /dev/null @@ -1,137 +0,0 @@ -command = new CommitCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->environment->id = 'dev'; - $this->expectWorkflowProcessing(); - } - - /** - * Tests the env:commit command to success with all parameters - */ - public function testCommit() - { - $message = 'Custom message.'; - - $this->environment->expects($this->once()) - ->method('diffstat') - ->willReturn(['a', 'b']); - $this->environment->expects($this->once()) - ->method('get') - ->with('connection_mode') - ->willReturn('sftp'); - $this->environment->expects($this->once()) - ->method('commitChanges') - ->with($this->equalTo($message)) - ->willReturn($this->workflow); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Your code was committed.') - ); - - $out = $this->command->commit( - 'mysite.' . $this->environment->id, - compact('message') - ); - $this->assertNull($out); - } - - /** - * Tests the env:commit command when there are no changes to be committed - */ - public function testCommitNoChanges() - { - $this->environment->expects($this->once()) - ->method('diffstat') - ->willReturn([]); - $this->environment->expects($this->never()) - ->method('commitChanges'); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('There is no code to commit.') - ); - - $out = $this->command->commit('mysite.' . $this->environment->id); - $this->assertNull($out); - } - - /** - * Tests the env:commit command when there are no changes to be committed - */ - public function testCommitForce() - { - $message = 'Custom message.'; - - $this->environment->expects($this->once()) - ->method('get') - ->with('connection_mode') - ->willReturn('sftp'); - $this->environment->expects($this->once()) - ->method('commitChanges') - ->with($this->equalTo($message)) - ->willReturn($this->workflow); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Your code was committed.') - ); - - $out = $this->command->commit( - 'mysite.' . $this->environment->id, - ['message' => $message, 'force' => true] - ); - $this->assertNull($out); - } - - /** - * Tests the env:commit command when there are no changes to be committed - */ - public function testCommitForceGitMode() - { - $this->environment->expects($this->once()) - ->method('get') - ->with('connection_mode') - ->willReturn('git'); - $this->environment->expects($this->never()) - ->method('commitChanges'); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('You can only commit code in an environment that is set to sftp mode.') - ); - - $out = $this->command->commit( - 'mysite.' . $this->environment->id, - ['force' => true] - ); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Env/DeployCommandTest.php b/tests/unit_tests/Commands/Env/DeployCommandTest.php deleted file mode 100644 index 6dc82c064..000000000 --- a/tests/unit_tests/Commands/Env/DeployCommandTest.php +++ /dev/null @@ -1,193 +0,0 @@ -command = new DeployCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the env:deploy command success with all parameters - */ - public function testDeploy() - { - $this->environment->id = 'test'; - - $this->environment->expects($this->exactly(2)) - ->method('isInitialized') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('hasDeployableCode') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('deploy') - ->willReturn($this->workflow) - ->with([ - 'updatedb' => 0, - 'clear_cache' => 0, - 'annotation' => 'Deploy from Terminus', - 'clone_database' => [ - 'from_environment' => 'live' - ], - 'clone_files' => [ - 'from_environment' => 'live' - ] - ]); - - // Run the deploy. - $this->command->deploy( - "mysite.{$this->environment->id}", - ['sync-content' => true, 'note' => 'Deploy from Terminus', 'updatedb' => false, 'cc' => false,] - ); - } - - /** - * Tests the env:deploy command where no code is deployable - */ - public function testDeployNoCode() - { - $this->environment->id = 'test'; - - $this->environment->expects($this->once()) - ->method('isInitialized') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('hasDeployableCode') - ->willReturn(false); - $this->environment->expects($this->never()) - ->method('deploy'); - $this->logger->expects($this->once()) - ->method('log'); - - // Run the deploy. - $this->command->deploy("mysite.{$this->environment->id}"); - } - - /** - * Tests the env:deploy command to live - */ - public function testDeployLive() - { - $this->environment->id = 'live'; - - $this->environment->expects($this->once()) - ->method('isInitialized') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('hasDeployableCode') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('deploy') - ->willReturn($this->workflow) - ->with([ - 'updatedb' => 1, - 'clear_cache' => 1, - 'annotation' => 'Deploy from Terminus', - ]); - - // Run the deploy. - $this->command->deploy( - "mysite.{$this->environment->id}", - ['sync-content' => true, 'note' => 'Deploy from Terminus', 'updatedb' => true, 'cc' => true,] - ); - } - - /** - * Tests the env:deploy command when the environment is uninitialized and a deploy message is supplied - */ - public function testDeployUninitializedWithMessage() - { - $this->environment->id = 'uninitialized'; - $note = 'Never running from a real fight'; - - $this->environment->expects($this->once()) - ->method('isInitialized') - ->willReturn(false); - $this->environment->expects($this->once()) - ->method('initializeBindings') - ->with(['annotation' => $note,]) - ->willReturn($this->workflow); - - // Run the deploy. - $this->command->deploy("mysite.{$this->environment->id}", compact('note')); - } - - /** - * Tests the env:deploy command when the environment is uninitialized and no deploy message is given - */ - public function testDeployUninitializedWithoutMessage() - { - $this->environment->id = 'uninitialized'; - - $this->environment->expects($this->once()) - ->method('isInitialized') - ->willReturn(false); - $this->environment->expects($this->once()) - ->method('initializeBindings') - ->with() - ->willReturn($this->workflow); - - // Run the deploy. - $this->command->deploy("mysite.{$this->environment->id}"); - } - - /** - * Tests the env:deploy command when trying to sync from an uninitialized environment - */ - public function testDeploySyncFromUninitialized() - { - $this->environment->id = 'test'; - $site_name = 'site name'; - - $this->environment->expects($this->at(0)) - ->method('isInitialized') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('hasDeployableCode') - ->willReturn(true); - $this->environment->expects($this->at(1)) - ->method('isInitialized') - ->willReturn(false); - $this->site->expects($this->once()) - ->method('getName') - ->willReturn($site_name); - $this->environment->expects($this->never()) - ->method('deploy'); - $this->site->expects($this->once()) - ->method('isFrozen') - ->willReturn(false); - - $this->setExpectedException( - TerminusException::class, - "$site_name's live environment cannot be cloned because it has not been initialized." - ); - - // Run the deploy. - $this->command->deploy( - "$site_name.{$this->environment->id}", - ['sync-content' => true, 'note' => 'Deploy from Terminus', 'updatedb' => false,] - ); - } -} diff --git a/tests/unit_tests/Commands/Env/DiffStatCommandTest.php b/tests/unit_tests/Commands/Env/DiffStatCommandTest.php deleted file mode 100644 index 2d2f6f646..000000000 --- a/tests/unit_tests/Commands/Env/DiffStatCommandTest.php +++ /dev/null @@ -1,55 +0,0 @@ -command = new DiffStatCommand(); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - public function testDiffStat() - { - $diffs = [ - 'myfile.txt' => ['status' => 'm', 'deletions' => 2, 'additions' => 4], - 'another.txt' => ['status' => 'm', 'deletions' => 3, 'additions' => 0] - ]; - $expected = [ - ['file' => 'myfile.txt'] + $diffs['myfile.txt'], - ['file' => 'another.txt'] + $diffs['another.txt'], - ]; - $this->environment->expects($this->once()) - ->method('diffstat') - ->willReturn($diffs); - $out = $this->command->diffstat('mysite.dev'); - - $this->assertEquals($expected, $out->getArrayCopy()); - } - - public function testDiffStatEmpty() - { - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('No changes on server.') - ); - - $this->environment->expects($this->once()) - ->method('diffstat') - ->willReturn([]); - $out = $this->command->diffstat('mysite.dev'); - $this->assertEquals([], $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Env/EnvCommandTest.php b/tests/unit_tests/Commands/Env/EnvCommandTest.php deleted file mode 100644 index 20b54928d..000000000 --- a/tests/unit_tests/Commands/Env/EnvCommandTest.php +++ /dev/null @@ -1,30 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/Env/InfoCommandTest.php b/tests/unit_tests/Commands/Env/InfoCommandTest.php deleted file mode 100644 index c52e3217e..000000000 --- a/tests/unit_tests/Commands/Env/InfoCommandTest.php +++ /dev/null @@ -1,31 +0,0 @@ - 'bar', 'baz' => 'bop']; - $this->environment->expects($this->once()) - ->method('serialize') - ->willReturn($data); - - $this->command = new InfoCommand(); - $this->command->setSites($this->sites); - $out = $this->command->info('mysite.dev'); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Env/ListCommandTest.php b/tests/unit_tests/Commands/Env/ListCommandTest.php deleted file mode 100644 index f6de8ad6a..000000000 --- a/tests/unit_tests/Commands/Env/ListCommandTest.php +++ /dev/null @@ -1,83 +0,0 @@ -logger = $this->getMockBuilder(LoggerInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data = [ - 'env_id' => ['id' => 'env_id', 'foo' => 'bar', 'baz' => 'bop',], - 'env_id_2' => ['id' => 'env_id_2', 'foo' => 'abc', 'baz' => 'def',], - ]; - $this->environments->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->data); - - $this->command = new ListCommand(); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests the env:list command - */ - public function testListEnvs() - { - $this->site->expects($this->once()) - ->method('isFrozen') - ->willReturn(false); - $this->logger->expects($this->never()) - ->method('warning'); - - $out = $this->command->listEnvs('mysite'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($this->data, $out->getArrayCopy()); - } - - /** - * Tests the env:list command when the site is frozen - */ - public function testListFrozenEnvs() - { - $this->site->expects($this->once()) - ->method('isFrozen') - ->willReturn(true); - $this->logger->expects($this->once()) - ->method('warning') - ->with( - $this->equalTo('This site is frozen. Its test and live environments are unavailable.') - ); - - $out = $this->command->listEnvs('mysite'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($this->data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Env/MetricsCommandTest.php b/tests/unit_tests/Commands/Env/MetricsCommandTest.php deleted file mode 100644 index f999cc9ee..000000000 --- a/tests/unit_tests/Commands/Env/MetricsCommandTest.php +++ /dev/null @@ -1,78 +0,0 @@ -command = new MetricsCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - - $this->metrics = $this->getMockBuilder(EnvironmentMetrics::class) - ->disableOriginalConstructor() - ->getMock(); - - // Ignore the calls to the fluid initializers in the EnvironmentMetrics class. - $this->metrics->method('setDuration')->willReturn($this->metrics); - $this->metrics->method('selectDatapoints')->willReturn(2); - - $this->environment->method('getEnvironmentMetrics')->willReturn($this->metrics); - $this->environment->method('getName')->willReturn('live'); - - $this->metric_1_attribs = [ - 'id' => '1517443200', - 'datetime' => '2018-02-01T00:00:00', - 'value' => '1197', - ]; - $this->metric_1 = new Metric((object)$this->metric_1_attribs); - $this->metric_2_attribs = [ - 'id' => '1519862400', - 'datetime' => '2018-03-01T00:00:00', - 'value' => '5111', - ]; - $this->metric_2 = new Metric((object)$this->metric_2_attribs); - } - - /** - * Tests the env:metrics command success with all parameters - */ - public function testLog() - { - $data = [ - 'timeseries' => [ - '1517443200' => [ - 'datetime' => '2018-02-01T00:00:00', - 'value' => '1197', - ], - '1519862400' => [ - 'datetime' => '2018-03-01T00:00:0', - 'value' => '1197', - ], - ], - 'summary' => null, - ]; - $this->environment->id = 'live'; - $this->metrics->method('serialize') - ->willReturn($data); - - $out = $this->command->metrics('mysite.live'); - - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Env/MockCloneCommand.php b/tests/unit_tests/Commands/Env/MockCloneCommand.php deleted file mode 100644 index a5aa052f8..000000000 --- a/tests/unit_tests/Commands/Env/MockCloneCommand.php +++ /dev/null @@ -1,9 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->expects($this->any()) - ->method('domain') - ->willReturn('dev-my-site.example.com'); - - $this->command = new ViewCommand(); - $this->command->setSites($this->sites); - $this->command->setContainer($this->container); - } - - /** - * Tests the env:view command - */ - public function testView() - { - $this->container->expects($this->never()) - ->method('get'); - - $url = $this->command->view('my-site.dev', ['print' => true]); - $this->assertEquals('https://dev-my-site.example.com/', $url); - } - - /** - * Tests the env:view command when the environment is locked - */ - public function testViewLocked() - { - $this->environment->expects($this->any()) - ->method('get') - ->with('lock') - ->willReturn( - (object)[ - 'locked' => true, - 'username' => 'user', - 'password' => 'pass', - ] - ); - $this->container->expects($this->never()) - ->method('get'); - - $url = $this->command->view('my-site.dev', ['print' => true]); - $this->assertEquals('https://user:pass@dev-my-site.example.com/', $url); - } - - /** - * Tests the env:view command when it opens in a browser window - */ - public function testViewOpen() - { - $expected_url = 'https://dev-my-site.example.com/'; - - $local_machine_helper = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->container->expects($this->once()) - ->method('get') - ->willReturn($local_machine_helper); - $local_machine_helper->expects($this->once()) - ->method('openUrl') - ->with($this->equalTo($expected_url)); - - $out = $this->command->view('my-site.dev'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Env/WakeCommandTest.php b/tests/unit_tests/Commands/Env/WakeCommandTest.php deleted file mode 100644 index 54af3cb91..000000000 --- a/tests/unit_tests/Commands/Env/WakeCommandTest.php +++ /dev/null @@ -1,80 +0,0 @@ -command = new WakeCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests the env:wake command - */ - public function testWakeEnv() - { - $this->environment->expects($this->once()) - ->method('wake') - ->with() - ->willReturn(['success' => true, 'target' => 'dev', 'styx' => 'yep!',]); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('OK >> {target} responded'), - $this->equalTo(['success' => true, 'target' => 'dev', 'styx' => 'yep!',]) - ); - - $out = $this->command->wake('mysite.dev'); - $this->assertNull($out); - } - - /** - * Tests the env:wake command when the operation fails to reach the environment - */ - public function testWakeFailUnreachable() - { - $this->environment->expects($this->once()) - ->method('wake') - ->with() - ->willReturn(['success' => false, 'target' => 'dev',]); - - $this->setExpectedException(TerminusException::class, 'Could not reach dev'); - - $out = $this->command->wake('mysite.dev'); - $this->assertNull($out); - } - - /** - * Tests the env:wake command when the operation fails because Styx data is missing - */ - public function testWakeFail() - { - $this->environment->expects($this->once()) - ->method('wake') - ->with() - ->willReturn(['success' => true, 'target' => 'dev',]); - - $this->setExpectedException(TerminusException::class, 'Pantheon headers missing, which is not quite right.'); - - $out = $this->command->wake('mysite.dev'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Env/WipeCommandTest.php b/tests/unit_tests/Commands/Env/WipeCommandTest.php deleted file mode 100644 index 70d4ab10c..000000000 --- a/tests/unit_tests/Commands/Env/WipeCommandTest.php +++ /dev/null @@ -1,68 +0,0 @@ -command = new WipeCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the env:wipe command - */ - public function testWipe() - { - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $message = 'successful workflow'; - - $this->expectConfirmation(); - - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - $this->site->expects($this->any()) - ->method('get') - ->willReturn(null); - $this->environment->expects($this->once()) - ->method('wipe') - ->willReturn($this->workflow); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Wiping the "{env}" environment of "{site}"') - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo($message) - ); - - $out = $this->command->wipe("$site_name.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/HTTPS/InfoCommandTest.php b/tests/unit_tests/Commands/HTTPS/InfoCommandTest.php deleted file mode 100644 index dafd04f72..000000000 --- a/tests/unit_tests/Commands/HTTPS/InfoCommandTest.php +++ /dev/null @@ -1,72 +0,0 @@ -domains = $this->getMockBuilder(Domains::class) - ->disableOriginalConstructor() - ->getMock(); - $this->domains->method('getCollectedClass')->willReturn(Domain::class); - $this->data = ['some' => 'data', 'for' => 'testing',]; - - $this->environment->expects($this->once()) - ->method('getDomains') - ->with() - ->willReturn($this->domains); - $this->domains->expects($this->once()) - ->method('fetchWithRecommendations') - ->with() - ->willReturn($this->domains); - $this->domains->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->data); - - $this->command = new InfoCommand(); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests the https:info command when HTTPS is active on the given environment - */ - public function testInfo() - { - $out = $this->command->info('site.env'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($out->getArrayCopy(), $this->data); - } -} diff --git a/tests/unit_tests/Commands/HTTPS/RemoveCommandTest.php b/tests/unit_tests/Commands/HTTPS/RemoveCommandTest.php deleted file mode 100644 index 250c8da8b..000000000 --- a/tests/unit_tests/Commands/HTTPS/RemoveCommandTest.php +++ /dev/null @@ -1,71 +0,0 @@ -command = new RemoveCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the https:remove command - */ - public function testRemove() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->environment->expects($this->once()) - ->method('disableHttpsCertificate') - ->willReturn($workflow); - - - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command->remove('mysite.dev'); - } - - /** - * Tests the https:remove command when it fails - */ - public function testRemoveFailed() - { - $this->environment->expects($this->once()) - ->method('disableHttpsCertificate') - ->will($this->throwException(new TerminusException('Could not delete'))); - - $this->setExpectedException(TerminusException::class); - $this->command->remove('mysite.dev'); - } -} diff --git a/tests/unit_tests/Commands/HTTPS/SetCommandTest.php b/tests/unit_tests/Commands/HTTPS/SetCommandTest.php deleted file mode 100644 index 63584f419..000000000 --- a/tests/unit_tests/Commands/HTTPS/SetCommandTest.php +++ /dev/null @@ -1,97 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn('successful workflow'); - - $this->environment->expects($this->once()) - ->method('setHttpsCertificate') - ->with( - [ - 'cert' => '*CERT*', - 'key' => '*KEY*', - 'intermediary' => '*INT*', - ] - ) - ->willReturn($this->workflow); - - // should display a notice about the mode switch - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('SSL certificate updated. Converging loadbalancer.') - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - - $this->command = new SetCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Tests connection:set while setting with files - */ - public function testSetFiles() - { - $key = tempnam(sys_get_temp_dir(), 'terminus_key_'); - $cert = tempnam(sys_get_temp_dir(), 'terminus_cert_'); - $int = tempnam(sys_get_temp_dir(), 'terminus_int_'); - file_put_contents($key, '*KEY*'); - file_put_contents($cert, '*CERT*'); - file_put_contents($int, '*INT*'); - - $this->command->set('mysite.dev', $cert, $key, ['intermediate-certificate' => $int,]); - - unlink($key); - unlink($cert); - unlink($int); - } - - /** - * Tests connection:set while setting with values - */ - public function testSetValues() - { - $this->command->set('mysite.dev', '*CERT*', '*KEY*', ['intermediate-certificate' => '*INT*',]); - } -} diff --git a/tests/unit_tests/Commands/Import/CompleteCommandTest.php b/tests/unit_tests/Commands/Import/CompleteCommandTest.php deleted file mode 100644 index 64b7dc9db..000000000 --- a/tests/unit_tests/Commands/Import/CompleteCommandTest.php +++ /dev/null @@ -1,61 +0,0 @@ -command = new CompleteCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the import:complete command - */ - public function testSiteImportValidURL() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $site_name = 'site_name'; - $this->site->expects($this->once()) - ->method('completeMigration') - ->with() - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('The import of {site} has been marked as complete.'), - $this->equalTo(['site' => $site_name,]) - ); - - $out = $this->command->complete($site_name); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Import/DatabaseCommandTest.php b/tests/unit_tests/Commands/Import/DatabaseCommandTest.php deleted file mode 100644 index ee7f9ba53..000000000 --- a/tests/unit_tests/Commands/Import/DatabaseCommandTest.php +++ /dev/null @@ -1,69 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new DatabaseCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Exercises import:database command with a valid URL - */ - public function testImportValidURL() - { - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $valid_url = 'a_valid_url'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('importDatabase') - ->with($this->equalTo($valid_url)) - ->willReturn($this->workflow); - $this->site->expects($this->any()) - ->method('get') - ->willReturn(null); - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Imported database to {site}.{env}.') - ); - - $out = $this->command->import("$site_name.{$this->environment->id}", $valid_url); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Import/FilesCommandTest.php b/tests/unit_tests/Commands/Import/FilesCommandTest.php deleted file mode 100644 index 3c6fd989d..000000000 --- a/tests/unit_tests/Commands/Import/FilesCommandTest.php +++ /dev/null @@ -1,75 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new FilesCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Exercises import:files command with a valid URL - */ - public function testImportValidURL() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $valid_url = 'a_valid_url'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('importFiles') - ->with($this->equalTo($valid_url)) - ->willReturn($this->workflow); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Imported files to {site}.{env}.'), - $this->equalTo(['site' => $site_name, 'env' => $this->environment->id,]) - ); - - $out = $this->command->import("$site_name.{$this->environment->id}", $valid_url); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Import/SiteCommandTest.php b/tests/unit_tests/Commands/Import/SiteCommandTest.php deleted file mode 100644 index 0590a8b66..000000000 --- a/tests/unit_tests/Commands/Import/SiteCommandTest.php +++ /dev/null @@ -1,115 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new SiteCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Exercises site:import command with a valid URL - */ - public function testSiteImportValidURL() - { - $url = 'a-valid-url'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('import') - ->with($this->equalTo($url)) - ->willReturn($this->workflow); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Imported site onto Pantheon') - ); - - $out = $this->command->import('dummy-site', $url); - $this->assertNull($out); - } - - /** - * Exercises site:import command with an invalid URL - */ - public function testSiteImportInvalidURL() - { - $url = 'an-invalid-url'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('import') - ->with($this->equalTo($url)) - ->willReturn($this->workflow); - $this->logger->expects($this->never()) - ->method('log'); - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new \Exception('Successfully queued import_site'))); - - $this->setExpectedException(TerminusException::class, 'Site import failed'); - - $out = $this->command->import('dummy-site', $url); - $this->assertNull($out); - } - - /** - * Exercises site:import command when the workflow throws an exception with a message other than "Successfully queued import_site" - */ - public function testSiteImportUnspecifiedException() - { - $url = 'an-invalid-url'; - $message = 'Any message except the special one'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('import') - ->with($this->equalTo($url)) - ->willReturn($this->workflow); - $this->logger->expects($this->never()) - ->method('log'); - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new \Exception($message))); - - $this->setExpectedException(\Exception::class, $message); - - $out = $this->command->import('dummy-site', $url); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Lock/DisableCommandTest.php b/tests/unit_tests/Commands/Lock/DisableCommandTest.php deleted file mode 100644 index d3d0dca22..000000000 --- a/tests/unit_tests/Commands/Lock/DisableCommandTest.php +++ /dev/null @@ -1,60 +0,0 @@ -command = new DisableCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - /** - * Tests the lock:disable command - */ - public function testDisable() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $this->lock->expects($this->once()) - ->method('disable') - ->with() - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{site}.{env} has been unlocked.'), - $this->equalTo(['site' => $site_name, 'env' => $this->environment->id,]) - ); - - $out = $this->command->disable("$site_name.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Lock/EnableCommandTest.php b/tests/unit_tests/Commands/Lock/EnableCommandTest.php deleted file mode 100644 index 880a62f2f..000000000 --- a/tests/unit_tests/Commands/Lock/EnableCommandTest.php +++ /dev/null @@ -1,62 +0,0 @@ -command = new EnableCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - /** - * Tests the lock:enable command - */ - public function testEnable() - { - $username = 'username'; - $password = 'password'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $this->lock->expects($this->once()) - ->method('enable') - ->with($this->equalTo(['username' => $username, 'password' => $password,])) - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{site}.{env} has been locked.'), - $this->equalTo(['site' => $site_name, 'env' => $this->environment->id,]) - ); - - $out = $this->command->enable("$site_name.{$this->environment->id}", $username, $password); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Lock/InfoCommandTest.php b/tests/unit_tests/Commands/Lock/InfoCommandTest.php deleted file mode 100644 index b7a56f54e..000000000 --- a/tests/unit_tests/Commands/Lock/InfoCommandTest.php +++ /dev/null @@ -1,47 +0,0 @@ -command = new InfoCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests the lock:info command - */ - public function testInfo() - { - $data = ['locked' => 'true', 'username' => 'username', 'password' => 'password',]; - - $site_name = 'site_name'; - $this->environment->id = 'env_id'; - $this->lock->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($data); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->info("$site_name.{$this->environment->id}"); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Lock/LockCommandTest.php b/tests/unit_tests/Commands/Lock/LockCommandTest.php deleted file mode 100644 index 9ece6f8ec..000000000 --- a/tests/unit_tests/Commands/Lock/LockCommandTest.php +++ /dev/null @@ -1,35 +0,0 @@ -lock = $this->getMockBuilder(Lock::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'env_id'; - $this->environment->expects($this->once()) - ->method('getLock') - ->with() - ->willReturn($this->lock); - } -} diff --git a/tests/unit_tests/Commands/MachineToken/MachineTokenCommandTest.php b/tests/unit_tests/Commands/MachineToken/MachineTokenCommandTest.php deleted file mode 100644 index eba8ee495..000000000 --- a/tests/unit_tests/Commands/MachineToken/MachineTokenCommandTest.php +++ /dev/null @@ -1,53 +0,0 @@ -machine_tokens = $this->getMockBuilder(MachineTokens::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user->expects($this->any()) - ->method('getMachineTokens') - ->willReturn($this->machine_tokens); - - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->method('getUser') - ->willReturn($this->user); - - $this->logger = $this->getMockBuilder(NullLogger::class) - ->setMethods(array('log')) - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteAllCommandTest.php b/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteAllCommandTest.php deleted file mode 100644 index b204dd53f..000000000 --- a/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteAllCommandTest.php +++ /dev/null @@ -1,73 +0,0 @@ -command = new DeleteAllCommand(new Config()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - } - - /** - * Tests the machine-token:delete command. - * - * @return void - */ - public function testMachineTokenDelete() - { - $token = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - $token->expects($this->once()) - ->method('delete'); - - $token2 = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - $token2->expects($this->once()) - ->method('delete'); - - $tokens = $this->getMockBuilder(SavedTokens::class) - ->disableOriginalConstructor() - ->setMethods(['all',]) - ->getMock(); - $tokens->expects($this->any()) - ->method('all') - ->willReturn([$token, $token2]); - - $this->session->expects($this->any()) - ->method('getTokens') - ->willReturn($tokens); - $this->session->expects($this->once()) - ->method('destroy'); - - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Your saved machine tokens have been deleted and you have been logged out.') - ); - - $this->command->deleteAll(); - } -} diff --git a/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteCommandTest.php b/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteCommandTest.php deleted file mode 100644 index 4bea7bca8..000000000 --- a/tests/unit_tests/Commands/MachineToken/MachineTokensDeleteCommandTest.php +++ /dev/null @@ -1,97 +0,0 @@ -token = $this->getMockBuilder(MachineToken::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new DeleteCommand(new Config()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - } - - /** - * Tests the machine-token:delete command. - */ - public function testMachineTokenDelete() - { - $this->machine_tokens->expects($this->once()) - ->method('get') - ->with($this->equalTo('123')) - ->willReturn($this->token); - $this->expectConfirmation(); - $this->token->expects($this->once()) - ->method('delete') - ->willReturn(['status_code' => 200,]); - - $out = $this->command->delete('123'); - $this->assertNull($out); - } - - /** - * Tests the machine-token:delete command when there are no tokens. - */ - public function testMachineTokenDeleteNonExistant() - { - $this->machine_tokens->expects($this->once()) - ->method('get') - ->with($this->equalTo('123')) - ->will($this->throwException(new TerminusException())); - $this->token->expects($this->never()) - ->method('delete'); - - $this->setExpectedException(TerminusException::class); - - $out = $this->command->delete('123'); - $this->assertNull($out); - } - - /** - * Tests the machine-token:delete command when the API fails. - */ - public function testMachineTokenDeleteAPIFailure() - { - $this->machine_tokens->expects($this->once()) - ->method('get') - ->with($this->equalTo('123')) - ->willReturn($this->token); - $this->expectConfirmation(); - $this->token->expects($this->once()) - ->method('delete') - ->will($this->throwException(new TerminusException('There was an problem deleting the machine token.'))); - - $this->setExpectedException( - \Exception::class, - 'There was an problem deleting the machine token.' - ); - - $out = $this->command->delete('123'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/MachineToken/MachineTokensListCommandTest.php b/tests/unit_tests/Commands/MachineToken/MachineTokensListCommandTest.php deleted file mode 100644 index 1433b8535..000000000 --- a/tests/unit_tests/Commands/MachineToken/MachineTokensListCommandTest.php +++ /dev/null @@ -1,65 +0,0 @@ -machine_tokens->method('getCollectedClass')->willReturn(MachineToken::class); - - $this->command = new ListCommand(new Config()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - } - - /** - * Tests the machine-token:list command when there are no tokens - */ - public function testMachineTokenListEmpty() - { - $this->machine_tokens->method('serialize') - ->willReturn([]); - - $this->logger->expects($this->once()) - ->method('log') - ->with($this->equalTo('warning'), $this->equalTo('You have no machine tokens.')); - - $out = $this->command->listTokens(); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the machine-token:list command when there are tokens - */ - public function testMachineTokenListNotEmpty() - { - $tokens = [ - '1' => ['id' => '1', 'device_name' => 'Foo'], - '2' => ['id' => '2', 'device_name' => 'Bar'] - ]; - $this->machine_tokens->method('serialize') - ->willReturn($tokens); - - $this->logger->expects($this->never()) - ->method($this->anything()); - - $out = $this->command->listTokens(); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($tokens, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Multidev/CreateCommandTest.php b/tests/unit_tests/Commands/Multidev/CreateCommandTest.php deleted file mode 100644 index fe8b24370..000000000 --- a/tests/unit_tests/Commands/Multidev/CreateCommandTest.php +++ /dev/null @@ -1,73 +0,0 @@ -command = new CreateCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->environments->method('create')->willReturn($this->workflow); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the multidev:create command - */ - public function testCreate() - { - $multidev_name = 'multipass'; - $this->environment->id = 'dev'; - - $this->workflow->method('isSuccessful') - ->with() - ->willReturn(true); - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn("Created Multidev environment \"$multidev_name\""); - $this->logger->expects($this->once()) - ->method('log') - ->with($this->equalTo('notice'), "Created Multidev environment \"$multidev_name\""); - - $out = $this->command->create($multidev_name, $this->environment); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:create throws an error when the environment-creation operation errs - * - * @expectedExceptionMessage The environment "multipass" already exists. - */ - public function testCreateFailure() - { - $multidev_name = 'multipass'; - $this->environment->id = 'dev'; - - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn("The environment \"$multidev_name\" already exists."); - - $out = $this->command->create($multidev_name, $this->environment); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Multidev/DeleteCommandTest.php b/tests/unit_tests/Commands/Multidev/DeleteCommandTest.php deleted file mode 100644 index c0be9aff5..000000000 --- a/tests/unit_tests/Commands/Multidev/DeleteCommandTest.php +++ /dev/null @@ -1,109 +0,0 @@ -environment->method('delete')->willReturn($this->workflow); - - $this->command = new DeleteCommand(); - $this->command->setConfig($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->command->setInput($this->input); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the multidev:create command - */ - public function testMultidevDelete() - { - $this->environment->id = 'multipass'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('delete') - ->with(); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Deleted the multidev environment {env}."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->deleteMultidev("site.{$this->environment->id}"); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:delete to ensure it passes the 'delete-branch' option successfully - */ - public function testMultidevDeleteWithBranch() - { - $this->environment->id = 'multipass'; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('delete') - ->with($this->equalTo(['delete_branch' => true,])) - ->willReturn($this->workflow); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Deleted the multidev environment {env}."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->deleteMultidev("site.{$this->environment->id}", ['delete-branch' => true,]); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:create throws an error when the environment-creation operation fails - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage The {env} environment could not be deleted. - */ - public function testMultidevDeleteFailure() - { - $message = 'The {env} environment could not be deleted.'; - $this->environment->id = 'env id'; - $expected_message = "The {$this->environment->id} environment could not be deleted."; - - $this->expectConfirmation(); - $this->environment->expects($this->once()) - ->method('delete') - ->with($this->equalTo(['delete_branch' => false,])) - ->willReturn($this->workflow); - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new TerminusException($message, ['env' => $this->environment->id,]))); - - $this->setExpectedException(TerminusException::class, $expected_message); - - $out = $this->command->deleteMultidev("site.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Multidev/ListCommandTest.php b/tests/unit_tests/Commands/Multidev/ListCommandTest.php deleted file mode 100644 index 0e1061bdd..000000000 --- a/tests/unit_tests/Commands/Multidev/ListCommandTest.php +++ /dev/null @@ -1,61 +0,0 @@ -data = [ - 'id' => 'testing', - 'created' => '1984/07/28 16:40', - 'domain' => 'domain', - 'on_server_development' => true, - 'locked' => false, - 'initialized' => true, - ]; - - $this->logger->expects($this->never()) - ->method($this->anything()); - $this->environments->expects($this->once()) - ->method('filterForMultidev') - ->willReturn($this->environments); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the multidev:list command when there are no multidev environments - */ - public function testMultidevListNotEmpty() - { - $this->environments->expects($this->once()) - ->method('serialize') - ->willReturn($this->data); - - $out = $this->command->listMultidevs('my_site'); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - - $this->assertEquals($this->data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Multidev/MergeFromDevCommandTest.php b/tests/unit_tests/Commands/Multidev/MergeFromDevCommandTest.php deleted file mode 100644 index b8919da5f..000000000 --- a/tests/unit_tests/Commands/Multidev/MergeFromDevCommandTest.php +++ /dev/null @@ -1,93 +0,0 @@ -command = new MergeFromDevCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->environment->method('mergeFromDev')->willReturn($this->workflow); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the multidev:merge-from-dev command - */ - public function testMergeFromDev() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeFromDev') - ->with($this->equalTo(['updatedb' => false,])); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Merged the dev environment into {env}."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->mergeFromDev("site.{$this->environment->id}"); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:merge-from-dev to ensure it passes the 'updatedb' option successfully - */ - public function testMergeFromDevWithUpdateDB() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeFromDev') - ->with($this->equalTo(['updatedb' => true,])); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Merged the dev environment into {env}."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->mergeFromDev("site.{$this->environment->id}", ['updatedb' => true,]); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:merge-from-dev throws an error when the environment-creation operation fails - * - * @expectedExceptionMessage The dev environment could not be merged into {env}. - */ - public function testMergeFromDevFailure() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeFromDev') - ->with($this->equalTo(['updatedb' => false,])); - $this->workflow->method('getMessage')->willReturn("The dev environment could not be merged into {env}."); - - $out = $this->command->mergeFromDev("site.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Multidev/MergeToDevCommandTest.php b/tests/unit_tests/Commands/Multidev/MergeToDevCommandTest.php deleted file mode 100644 index 7370f6451..000000000 --- a/tests/unit_tests/Commands/Multidev/MergeToDevCommandTest.php +++ /dev/null @@ -1,96 +0,0 @@ -command = new MergeToDevCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->environment->method('mergeToDev')->willReturn($this->workflow); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the multidev:merge-to-dev command - */ - public function testMergeToDev() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeToDev') - ->with($this->equalTo(['from_environment' => $this->environment->id, 'updatedb' => false,])); - $this->workflow->method('isSuccessful')->willReturn(true); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Merged the {env} environment into dev."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->mergeToDev("site.{$this->environment->id}"); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:merge-to-dev to ensure it passes the 'updatedb' option successfully - */ - public function testMergeToDevWithUpdateDB() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeToDev') - ->with($this->equalTo(['from_environment' => $this->environment->id, 'updatedb' => true,])); - $this->workflow->method('isSuccessful')->willReturn(true); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("Merged the {env} environment into dev."), - $this->equalTo(['env' => $this->environment->id,]) - ); - - $out = $this->command->mergeToDev("site.{$this->environment->id}", ['updatedb' => true,]); - $this->assertNull($out); - } - - /** - * Tests to ensure the multidev:merge-to-dev throws an error when the environment-creation operation fails - * - * @expectedExceptionMessage The {env} environment could not be merged into dev. - */ - public function testMergeToDevFailure() - { - $this->environment->id = 'multipass'; - - $this->environment->expects($this->once()) - ->method('mergeToDev') - ->with($this->equalTo(['from_environment' => $this->environment->id, 'updatedb' => false,])); - $this->workflow->method('isSuccessful')->willReturn(false); - $this->workflow->method('getMessage')->willReturn("The {env} environment could not be merged into dev."); - - $out = $this->command->mergeToDev("site.{$this->environment->id}"); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Multidev/MultidevCommandTest.php b/tests/unit_tests/Commands/Multidev/MultidevCommandTest.php deleted file mode 100644 index c6c424fbe..000000000 --- a/tests/unit_tests/Commands/Multidev/MultidevCommandTest.php +++ /dev/null @@ -1,30 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/NewRelic/DisableCommandTest.php b/tests/unit_tests/Commands/NewRelic/DisableCommandTest.php deleted file mode 100644 index 8d0ecfb8f..000000000 --- a/tests/unit_tests/Commands/NewRelic/DisableCommandTest.php +++ /dev/null @@ -1,58 +0,0 @@ -command = new DisableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the new-relic:disable command - */ - public function testDisable() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn('successful workflow'); - - $this->new_relic->expects($this->once()) - ->method('disable') - ->willReturn($workflow); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $out = $this->command->disable('mysite'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/NewRelic/EnableCommandTest.php b/tests/unit_tests/Commands/NewRelic/EnableCommandTest.php deleted file mode 100644 index 8ddd46043..000000000 --- a/tests/unit_tests/Commands/NewRelic/EnableCommandTest.php +++ /dev/null @@ -1,56 +0,0 @@ -command = new EnableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - public function testEnable() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn('successful workflow'); - - $this->new_relic->expects($this->once()) - ->method('enable') - ->willReturn($workflow); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $out = $this->command->enable('mysite'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/NewRelic/InfoCommandTest.php b/tests/unit_tests/Commands/NewRelic/InfoCommandTest.php deleted file mode 100644 index 53ede65b9..000000000 --- a/tests/unit_tests/Commands/NewRelic/InfoCommandTest.php +++ /dev/null @@ -1,42 +0,0 @@ -command = new InfoCommand(); - $this->command->setSites($this->sites); - } - - /** - * Tests the new-relic:info command - */ - public function testInfo() - { - $data = ['name' => 'Name', 'info' => 'Info',]; - - $this->new_relic->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($data); - - $out = $this->command->info('mysite'); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/NewRelic/NewRelicCommandTest.php b/tests/unit_tests/Commands/NewRelic/NewRelicCommandTest.php deleted file mode 100644 index 9f56b7978..000000000 --- a/tests/unit_tests/Commands/NewRelic/NewRelicCommandTest.php +++ /dev/null @@ -1,27 +0,0 @@ -new_relic = $this->getMockBuilder(NewRelic::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->method('getNewRelic')->willReturn($this->new_relic); - } -} diff --git a/tests/unit_tests/Commands/Org/ListCommandTest.php b/tests/unit_tests/Commands/Org/ListCommandTest.php deleted file mode 100644 index e7985dc58..000000000 --- a/tests/unit_tests/Commands/Org/ListCommandTest.php +++ /dev/null @@ -1,112 +0,0 @@ -organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_organization_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session->method('getUser') - ->with() - ->willReturn($this->user); - $this->user_organization_memberships - ->method('getCollectedClass') - ->willReturn(UserOrganizationMembership::class); - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($this->user_organization_memberships); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the org:list command when the logged-in user is not a member of an organization - */ - public function testOrgListEmpty() - { - $this->user_organization_memberships->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - $this->logger->expects($this->once()) - ->method('log') - ->with($this->equalTo('warning'), $this->equalTo('You are not a member of any organizations.')); - - $out = $this->command->listOrgs(); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the multidev:list command when there are no multidev environments - */ - public function testOrgListNotEmpty() - { - $data = [ - 'id' => 'org_id', - 'name' => 'Organization Name', - ]; - - $this->logger->expects($this->never()) - ->method('log'); - $this->user_organization_memberships->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([$data, $data,]); - - $out = $this->command->listOrgs(); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - - $this->assertEquals([$data, $data,], $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Org/People/AddCommandTest.php b/tests/unit_tests/Commands/Org/People/AddCommandTest.php deleted file mode 100644 index 25dc037f7..000000000 --- a/tests/unit_tests/Commands/Org/People/AddCommandTest.php +++ /dev/null @@ -1,64 +0,0 @@ -command = new AddCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the org:people:add command - */ - public function testAdd() - { - $email = 'devuser@pantheon.io'; - $role = 'user_role'; - $org_name = 'org_name'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->org_user_memberships->expects($this->once()) - ->method('create') - ->with() - ->willReturn($workflow); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{email} has been added to the {org} organization as a(n) {role}.'), - $this->equalTo(['email' => $email, 'org' => $org_name, 'role' => $role,]) - ); - - $out = $this->command->add($this->organization->id, $email, $role); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Org/People/ListCommandTest.php b/tests/unit_tests/Commands/Org/People/ListCommandTest.php deleted file mode 100644 index 381175c74..000000000 --- a/tests/unit_tests/Commands/Org/People/ListCommandTest.php +++ /dev/null @@ -1,82 +0,0 @@ -org_user_memberships->method('getCollectedClass')->willReturn(UserOrganizationMembership::class); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the org:people:list command when the organization has no members - */ - public function testOrgPeopleListEmpty() - { - $org_name = 'org_name'; - $this->org_user_memberships->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('{org} has no members.'), - $this->equalTo(['org' => $org_name,]) - ); - - $out = $this->command->listPeople($this->organization->id); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the org:people:list command - */ - public function testOrgPeopleListNotEmpty() - { - $data = [ - 'user_id' => [ - 'id' => 'user_id', - 'first_name' => 'Dev', - 'last_name' => 'User', - 'email' => 'devuser@pantheon.io', - 'role' => 'team_role', - ] - ]; - - $this->org_user_memberships->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($data); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->listPeople($this->organization->id); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Org/People/OrgPeopleCommandTest.php b/tests/unit_tests/Commands/Org/People/OrgPeopleCommandTest.php deleted file mode 100644 index 45160d25a..000000000 --- a/tests/unit_tests/Commands/Org/People/OrgPeopleCommandTest.php +++ /dev/null @@ -1,98 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization->id = 'org_id'; - $this->org_user_membership = $this->getMockBuilder(OrganizationUserMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_user_memberships = $this->getMockBuilder(OrganizationUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->method('getOrganizationMemberships') - ->with() - ->willReturn($this->user_org_memberships); - $this->user_org_memberships->method('get') - ->with($this->equalTo($this->organization->id)) - ->willReturn($this->user_org_membership); - $this->user_org_membership->method('getOrganization') - ->with() - ->willReturn($this->organization); - $this->organization->method('getUserMemberships') - ->with() - ->willReturn($this->org_user_memberships); - $this->org_user_memberships->method('fetch') - ->with() - ->willReturn($this->org_user_memberships); - } -} diff --git a/tests/unit_tests/Commands/Org/People/RemoveCommandTest.php b/tests/unit_tests/Commands/Org/People/RemoveCommandTest.php deleted file mode 100644 index bb2d9580a..000000000 --- a/tests/unit_tests/Commands/Org/People/RemoveCommandTest.php +++ /dev/null @@ -1,76 +0,0 @@ -command = new RemoveCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the org:people:remove command - */ - public function testRemove() - { - $email = 'devuser@pantheon.io'; - $org_name = 'org_name'; - $full_name = 'Dev User'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->org_user_memberships->expects($this->once()) - ->method('get') - ->with($email) - ->willReturn($this->org_user_membership); - $this->org_user_membership->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($workflow); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - $this->org_user_membership->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($full_name); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{member} has been removed from the {org} organization.'), - $this->equalTo(['member' => $full_name, 'org' => $org_name,]) - ); - - $out = $this->command->remove($this->organization->id, $email); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Org/People/RoleCommandTest.php b/tests/unit_tests/Commands/Org/People/RoleCommandTest.php deleted file mode 100644 index 91529e540..000000000 --- a/tests/unit_tests/Commands/Org/People/RoleCommandTest.php +++ /dev/null @@ -1,77 +0,0 @@ -command = new RoleCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the org:people:role command - */ - public function testRole() - { - $email = 'devuser@pantheon.io'; - $org_name = 'org_name'; - $full_name = 'Dev User'; - $role = 'role'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->org_user_memberships->expects($this->once()) - ->method('get') - ->with($email) - ->willReturn($this->org_user_membership); - $this->org_user_membership->expects($this->once()) - ->method('setRole') - ->with($this->equalTo($role)) - ->willReturn($workflow); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - $this->org_user_membership->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($full_name); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo("{member}'s role has been changed to {role} in the {org} organization."), - $this->equalTo(['member' => $full_name, 'role' => $role, 'org' => $org_name,]) - ); - - $out = $this->command->role($this->organization->id, $email, $role); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Org/Site/ListCommandTest.php b/tests/unit_tests/Commands/Org/Site/ListCommandTest.php deleted file mode 100644 index 59752fbb5..000000000 --- a/tests/unit_tests/Commands/Org/Site/ListCommandTest.php +++ /dev/null @@ -1,97 +0,0 @@ -sites->method('fetch') - ->with($this->equalTo(['org_id' => $this->organization->id,])) - ->willReturn($this->sites); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the org:site:list command when the organization has no sites - */ - public function testOrgSiteListEmpty() - { - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - - $this->logger->expects($this->once()) - ->method('log') - ->with($this->equalTo('warning'), $this->equalTo('This organization has no sites.')); - - $out = $this->command->listSites($this->organization->id); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the org:site:list command - */ - public function testOrgSiteListNotEmpty() - { - $data = [ - 'id' => 'site_id', - 'name' => 'Site Name', - ]; - - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['site_id' => $data]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->listSites($this->organization->id); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals(['site_id' => $data], $out->getArrayCopy()); - } - - /** - * Tests the org:site:list command - */ - public function testOrgSiteListByTag() - { - $data = ['site_id' => [ - 'id' => 'site_id', - 'name' => 'Site Name', - ]]; - $tag = 'tag'; - - $this->sites->expects($this->once()) - ->method('filterByTag') - ->with($this->equalTo($tag)) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('serialize') - ->willReturn($data); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->listSites($this->organization->id, ['tag' => $tag, 'upstream' => null,]); - $this->assertInstanceOf('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $out); - $this->assertEquals($data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Org/Site/OrgSiteCommandTest.php b/tests/unit_tests/Commands/Org/Site/OrgSiteCommandTest.php deleted file mode 100644 index 804c9fa3d..000000000 --- a/tests/unit_tests/Commands/Org/Site/OrgSiteCommandTest.php +++ /dev/null @@ -1,76 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization->id = 'org_id'; - - $this->session->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->method('getOrganizationMemberships') - ->with() - ->willReturn($this->user_org_memberships); - $this->user_org_memberships->method('get') - ->with($this->equalTo($this->organization->id)) - ->willReturn($this->user_org_membership); - $this->user_org_membership->method('getOrganization') - ->with() - ->willReturn($this->organization); - } -} diff --git a/tests/unit_tests/Commands/Org/Site/RemoveCommandTest.php b/tests/unit_tests/Commands/Org/Site/RemoveCommandTest.php deleted file mode 100644 index c1c82a815..000000000 --- a/tests/unit_tests/Commands/Org/Site/RemoveCommandTest.php +++ /dev/null @@ -1,99 +0,0 @@ -site->id = 'site_id'; - - $this->org_site_membership = $this->getMockBuilder(OrganizationSiteMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_site_membership->method('getSite')->willReturn($this->site); - $this->org_site_memberships = $this->getMockBuilder(OrganizationSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_site_memberships->method('get') - ->with($this->site->id) - ->willReturn($this->org_site_membership); - $this->organization->method('getSiteMemberships') - ->with() - ->willReturn($this->org_site_memberships); - - $this->command = new RemoveCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the org:site:remove command - */ - public function testRemove() - { - $org_name = 'organization-name'; - $site_name = 'Site Name'; - - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_site_membership->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($this->workflow); - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($site_name); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{site} has been removed from the {org} organization.'), - $this->equalTo(['site' => $site_name, 'org' => $org_name,]) - ); - - $out = $this->command->remove($this->organization->id, $this->site->id); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Org/Upstream/ListCommandTest.php b/tests/unit_tests/Commands/Org/Upstream/ListCommandTest.php deleted file mode 100644 index 7fb371f66..000000000 --- a/tests/unit_tests/Commands/Org/Upstream/ListCommandTest.php +++ /dev/null @@ -1,84 +0,0 @@ -command = new ListCommand(); - $this->command->setSession($this->session); - } - - /** - * Tests the upstream:list command when filtering by organization - */ - public function testListOrgUpstreams() - { - $filtered = array_values($this->data); - $expected = [ - $this->data['upstream_id2'], - $this->data['upstream_id'], - $this->data['upstream_id4'], - $this->data['upstream_id3'], - ]; - $user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $org = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $org->id = 'orgID'; - $upstreams = $this->getMockBuilder(OrganizationUpstreams::class) - ->disableOriginalConstructor() - ->getMock(); - - $upstreams->method('getCollectedClass')->willReturn(Upstream::class); - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($user_org_memberships); - $user_org_memberships->expects($this->once()) - ->method('get') - ->with($org->id) - ->willReturn($user_org_membership); - $user_org_membership->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($org); - $org->expects($this->once()) - ->method('getUpstreams') - ->with() - ->willReturn($upstreams); - $upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listOrgUpstreams($org->id, ['all' => true,]); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Owner/SetCommandTest.php b/tests/unit_tests/Commands/Owner/SetCommandTest.php deleted file mode 100644 index e676c1af5..000000000 --- a/tests/unit_tests/Commands/Owner/SetCommandTest.php +++ /dev/null @@ -1,143 +0,0 @@ -user_memberships = $this->getMockBuilder(SiteUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->method('getUserMemberships')->willReturn($this->user_memberships); - - $this->command = new SetCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Exercises owner:set when the proposed owner is a team member - */ - public function testOwnerSetValidOwner() - { - $site_name = 'site_name'; - $email = 'a-valid-email'; - - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $user_membership = $this->getMockBuilder(SiteUserMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = 'user_id'; - $user_membership->method('getUser')->willReturn($user); - - $this->user_memberships->expects($this->once()) - ->method('get') - ->with($this->equalTo($email)) - ->willReturn($user_membership); - - $this->site->expects($this->once()) - ->method('setOwner') - ->with($this->equalTo($user->id)) - ->willReturn($workflow); - - $this->site->expects($this->once()) - ->method('getName') - ->willReturn($site_name); - $user->expects($this->never()) - ->method('getName'); - - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Promoted {user} to owner of {site}'), - $this->equalTo(['user' => $email, 'site' => $site_name,]) - ); - - $out = $this->command->setOwner($site_name, $email); - $this->assertNull($out); - } - - /** - * Exercises owner:set when the proposed owner is not a team member - * - * @expectedExceptionMessage The new owner must be added with "terminus site:team:add" before promoting. - */ - public function testOwnerSetInvalidOwner() - { - $email = 'a-valid-email'; - - $this->user_memberships->expects($this->once()) - ->method('get') - ->with($this->equalTo($email)) - ->will($this->throwException(new TerminusNotFoundException())); - - $this->site->expects($this->never()) - ->method('setOwner'); - $this->logger->expects($this->never()) - ->method('log'); - - $this->setExpectedException(TerminusNotFoundException::class); - - $out = $this->command->setOwner('dummy-site', $email); - $this->assertNull($out); - } - - - /** - * Exercises owner:set when throwing an error that is not a TerminusNotFoundException - */ - public function testOwnerSetDontCatchException() - { - $email = 'a-valid-email'; - - $this->user_memberships->expects($this->once()) - ->method('get') - ->with($this->equalTo($email)) - ->will($this->throwException(new \Exception())); - - $this->site->expects($this->never()) - ->method('setOwner'); - $this->logger->expects($this->never()) - ->method('log'); - - $this->setExpectedException(\Exception::class); - - $out = $this->command->setOwner('dummy-site', $email); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/PaymentMethod/AddCommandTest.php b/tests/unit_tests/Commands/PaymentMethod/AddCommandTest.php deleted file mode 100644 index 8f8455989..000000000 --- a/tests/unit_tests/Commands/PaymentMethod/AddCommandTest.php +++ /dev/null @@ -1,121 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->payment_methods = $this->getMockBuilder(PaymentMethods::class) - ->disableOriginalConstructor() - ->getMock(); - $this->payment_method = $this->getMockBuilder(PaymentMethod::class) - ->disableOriginalConstructor() - ->getMock(); - $this->payment_method->id = 'payment_method_id'; - - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getPaymentMethods') - ->with() - ->willReturn($this->payment_methods); - $this->payment_methods->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($this->payment_methods); - - $this->command = new AddCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the payment-method:add command - */ - public function testAdd() - { - $site_name = 'site_name'; - $payment_method_label = 'payment_method_label'; - - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->payment_methods->expects($this->once()) - ->method('get') - ->with($this->equalTo($payment_method_label)) - ->willReturn($this->payment_method); - $this->site->expects($this->once()) - ->method('addPaymentMethod') - ->with($this->equalTo($this->payment_method->id)) - ->willReturn($workflow); - $this->payment_method->expects($this->once()) - ->method('get') - ->with($this->equalTo('label')) - ->willReturn($payment_method_label); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{method} has been applied to the {site} site.'), - $this->equalTo(['method' => $payment_method_label, 'site' => $site_name,]) - ); - - $out = $this->command->add($site_name, $payment_method_label); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/PaymentMethod/ListCommandTest.php b/tests/unit_tests/Commands/PaymentMethod/ListCommandTest.php deleted file mode 100644 index 2af093a3b..000000000 --- a/tests/unit_tests/Commands/PaymentMethod/ListCommandTest.php +++ /dev/null @@ -1,107 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->payment_methods = $this->getMockBuilder(PaymentMethods::class) - ->disableOriginalConstructor() - ->getMock(); - $this->payment_methods->method('getCollectedClass')->willReturn(PaymentMethod::class); - - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getPaymentMethods') - ->with() - ->willReturn($this->payment_methods); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - } - - /** - * Tests the payment-method:list command - */ - public function testListPaymentMethods() - { - $data = ['payment_method_id' => ['id' => 'payment_method_id', 'label' => 'Card - 1111']]; - - $this->payment_methods->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($data); - - $this->logger->expects($this->never()) - ->method('log'); - - - $out = $this->command->listPaymentMethods(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($data, $out->getArrayCopy()); - } - - - /** - * Tests the payment-method:list command when the list is empty - */ - public function testListPaymentMethodsEmpty() - { - $this->payment_methods->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('There are no payment methods attached to this account.') - ); - - $out = $this->command->listPaymentMethods(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals([], $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/PaymentMethod/RemoveCommandTest.php b/tests/unit_tests/Commands/PaymentMethod/RemoveCommandTest.php deleted file mode 100644 index bf654dc0f..000000000 --- a/tests/unit_tests/Commands/PaymentMethod/RemoveCommandTest.php +++ /dev/null @@ -1,63 +0,0 @@ -command = new RemoveCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the payment-method:remove command - */ - public function testRemove() - { - $site_name = 'site_name'; - - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->expects($this->once()) - ->method('removePaymentMethod') - ->with() - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('The payment method for the {site} site has been removed.'), - $this->equalTo(['site' => $site_name,]) - ); - - $out = $this->command->remove($site_name); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Plan/InfoCommandTest.php b/tests/unit_tests/Commands/Plan/InfoCommandTest.php deleted file mode 100644 index 376857d9b..000000000 --- a/tests/unit_tests/Commands/Plan/InfoCommandTest.php +++ /dev/null @@ -1,71 +0,0 @@ -plan = $this->getMockBuilder(Plan::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new InfoCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Exercises plan:info - */ - public function testInfo() - { - $data = [ - 'billing_cycle' => 'monthly', - 'id' => 'plan id', - 'name' => 'Plan A', - 'price' => 2599, - 'monthly_price' => 2599, - 'sku' => 'Plan.sku', - 'storage' => 1234, - 'support_plan' => 'silver', - ]; - - $this->site->expects($this->once()) - ->method('getPlan') - ->with() - ->willReturn($this->plan); - $this->plan->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($this->plan); - $this->plan->expects($this->once()) - ->method('serialize') - ->willReturn($data); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->info('my-site'); - $this->assertInstanceOf(PropertyList::class, $out); - } -} diff --git a/tests/unit_tests/Commands/Plan/ListCommandTest.php b/tests/unit_tests/Commands/Plan/ListCommandTest.php deleted file mode 100644 index 7e69c9ca7..000000000 --- a/tests/unit_tests/Commands/Plan/ListCommandTest.php +++ /dev/null @@ -1,44 +0,0 @@ - 'master', 'sku' => 'xxx'], - ['id' => 'another', 'sku' => 'yyy'], - ]; - - $plans_collection = $this->getMockBuilder(Plans::class) - ->disableOriginalConstructor() - ->getMock(); - $plans_collection->method('getCollectedClass')->willReturn(Plan::class); - $plans_collection->expects($this->once()) - ->method('serialize') - ->willReturn($plans_info); - - $this->site->expects($this->once()) - ->method('getPlans') - ->willReturn($plans_collection); - - $command = new ListCommand(); - $command->setSites($this->sites); - $out = $command->listPlans('my-site'); - $this->assertEquals($plans_info, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Plan/SetCommandTest.php b/tests/unit_tests/Commands/Plan/SetCommandTest.php deleted file mode 100644 index 74da87a8e..000000000 --- a/tests/unit_tests/Commands/Plan/SetCommandTest.php +++ /dev/null @@ -1,85 +0,0 @@ -command = new SetCommand(); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setContainer($this->getContainer()); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the plan:set command - */ - public function testSet() - { - $plan = $this->getMockBuilder(Plan::class) - ->disableOriginalConstructor() - ->getMock(); - $plans = $this->getMockBuilder(Plans::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $site_name = 'site_name'; - $plan->id = 'plan_id'; - $message = 'successful workflow'; - - $this->site->expects($this->once()) - ->method('getPlans') - ->with() - ->willReturn($plans); - $plans->expects($this->once()) - ->method('get') - ->with($plan->id) - ->willReturn($plan); - $plans->expects($this->once()) - ->method('set') - ->with($plan) - ->willReturn($workflow); - $workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Setting plan of "{site_id}" to "{plan_id}".') - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo($message) - ); - - $out = $this->command->set($site_name, $plan->id); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Redis/DisableCommandTest.php b/tests/unit_tests/Commands/Redis/DisableCommandTest.php deleted file mode 100644 index 9c7e14424..000000000 --- a/tests/unit_tests/Commands/Redis/DisableCommandTest.php +++ /dev/null @@ -1,52 +0,0 @@ -getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->redis = $this->getMockBuilder(Redis::class) - ->disableOriginalConstructor() - ->getMock(); - $this->redis->expects($this->once()) - ->method('disable') - ->willReturn($workflow); - $this->site->method('getRedis')->willReturn($this->redis); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command = new DisableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - $this->command->disable('mysite'); - } -} diff --git a/tests/unit_tests/Commands/Redis/EnableCommandTest.php b/tests/unit_tests/Commands/Redis/EnableCommandTest.php deleted file mode 100644 index 6dcd9a645..000000000 --- a/tests/unit_tests/Commands/Redis/EnableCommandTest.php +++ /dev/null @@ -1,52 +0,0 @@ -getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->redis = $this->getMockBuilder(Redis::class) - ->disableOriginalConstructor() - ->getMock(); - $this->redis->expects($this->once()) - ->method('enable') - ->willReturn($workflow); - $this->site->method('getRedis')->willReturn($this->redis); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command = new EnableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - $this->command->enable('mysite'); - } -} diff --git a/tests/unit_tests/Commands/Remote/DrushCommandTest.php b/tests/unit_tests/Commands/Remote/DrushCommandTest.php deleted file mode 100644 index 0862de467..000000000 --- a/tests/unit_tests/Commands/Remote/DrushCommandTest.php +++ /dev/null @@ -1,92 +0,0 @@ -command = $this->getMockBuilder(DrushCommand::class) - ->disableOriginalConstructor() - ->setMethods([ - 'prepareEnvironment', - 'executeCommand', - 'log', - ]) - ->getMock(); - - $this->logger = $this->getMockBuilder(\Psr\Log\LoggerInterface::class) - ->getMock(); - - $this->command->method('log')->willReturn($this->logger); - } - - /** - * Tests the drush command - */ - public function testDrushCommand() - { - $command_output = 'command output'; - - $this->command->expects($this->once()) - ->method('prepareEnvironment') - ->with($this->equalTo('dummy-site.dummy-env')); - $this->command->expects($this->once()) - ->method('executeCommand') - ->willReturn($command_output); - - $output = $this->command->drushCommand('dummy-site.dummy-env', ['drushable', 'command', 'arguments']); - $this->assertEquals($command_output, $output); - } - - /** - * Tests the drush command with retry option - */ - public function testDrushCommandWithRetry() - { - $command_output = 'command output'; - $retry_options = ['retry' => 3, 'progress' => false]; - - $this->command->expects($this->once()) - ->method('prepareEnvironment') - ->with($this->equalTo('dummy-site.dummy-env')); - - $this->command->expects($this->exactly(3)) - ->method('executeCommand') - ->will($this->onConsecutiveCalls( - $this->throwException( - new \Pantheon\Terminus\Exceptions\TerminusProcessException('First attempt failed') - ), - $this->throwException( - new \Pantheon\Terminus\Exceptions\TerminusProcessException('Second attempt failed') - ), - $this->returnValue($command_output) - )); - - $this->logger->expects($this->exactly(2)) - ->method('warning') - ->withConsecutive( - [$this->equalTo('Retry attempt 1 for command failed.')], - [$this->equalTo('Retry attempt 2 for command failed.')] - ); - - $output = $this->command->drushCommand( - 'dummy-site.dummy-env', - ['drushable', 'command', 'arguments'], - $retry_options - ); - $this->assertEquals($command_output, $output); - } -} diff --git a/tests/unit_tests/Commands/Remote/DummyCommand.php b/tests/unit_tests/Commands/Remote/DummyCommand.php deleted file mode 100644 index ec116945f..000000000 --- a/tests/unit_tests/Commands/Remote/DummyCommand.php +++ /dev/null @@ -1,24 +0,0 @@ -prepareEnvironment($site_env_id); - return $this->executeCommand($dummy_args); - } -} diff --git a/tests/unit_tests/Commands/Remote/SSHBaseCommandTest.php b/tests/unit_tests/Commands/Remote/SSHBaseCommandTest.php deleted file mode 100644 index ba948b285..000000000 --- a/tests/unit_tests/Commands/Remote/SSHBaseCommandTest.php +++ /dev/null @@ -1,203 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->local_machine_helper = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->container->method('get') - ->with(LocalMachineHelper::class) - ->willReturn($this->local_machine_helper); - $this->local_machine_helper->method('exec_interactive') - ->willReturn(['output' => 'output', 'exit_code' => 0,]); - - $this->command = new DummyCommand(); - $this->command->setConfig($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setContainer($this->container); - } - - /** - * Tests command execution under normal circumstances - */ - public function testExecuteCommand() - { - $options = ['arg1', 'arg2', '',]; - $site_name = 'site name'; - $mode = 'sftp'; - - $this->environment->expects($this->once()) - ->method('isDevelopment') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('get') - ->with($this->equalTo('connection_mode')) - ->willReturn($mode); - $this->site->expects($this->any())->method('get') - ->withConsecutive( - [$this->equalTo('name'),], - [$this->equalTo('name'),] - ) - ->willReturnOnConsecutiveCalls($site_name, $site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Command: {site}.{env} -- {command} [Exit: {exit}]') - ); - $this->environment->expects($this->once()) - ->method('sftpConnectionInfo') - ->willReturn(['username' => 'THE USER NAME', 'host' => 'THE HOST', 'port' => 'THE PORT',]); - - $out = $this->command->dummyCommand("$site_name.env", $options); - $this->assertNull($out); - } - - /** - * Tests command execution when exiting with a nonzero status - */ - public function testExecuteCommandNonzeroStatus() - { - $dummy_output = 'dummy output'; - $options = ['arg1', 'arg2',]; - $site_name = 'site name'; - $mode = 'sftp'; - $status_code = 1; - $this->environment->id = 'env_id'; - $sftp_info = [ - 'host' => 'THE HOST', - 'port' => 'THE PORT', - 'username' => 'THE USER NAME', - ]; - $return_data = ['output' => $dummy_output, 'exit_code' => $status_code,]; - - $expectedLoggedCommand = 'dummy arg1 arg2'; - - $this->environment->expects($this->once()) - ->method('isDevelopment') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('get') - ->with($this->equalTo('connection_mode')) - ->willReturn($mode); - $this->site->expects($this->any())->method('get') - ->withConsecutive( - [$this->equalTo('name'),], - [$this->equalTo('name'),] - ) - ->willReturnOnConsecutiveCalls($site_name, $site_name); - $this->environment->expects($this->once()) - ->method('sftpConnectionInfo') - ->with() - ->willReturn($sftp_info); - $this->local_machine_helper->expects($this->once()) - ->method('execute') - ->willReturn($return_data); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Command: {site}.{env} -- {command} [Exit: {exit}]'), - $this->equalTo([ - 'site' => $site_name, - 'env' => $this->environment->id, - 'command' => "$expectedLoggedCommand", - 'exit' => $status_code, - ]) - ); - - $this->setExpectedException(TerminusProcessException::class, $dummy_output); - - $out = $this->command->dummyCommand("$site_name.{$this->environment->id}", $options); - $this->assertNull($out); - } - - /** - * Tests command execution when in git mode - */ - public function testExecuteCommandInGitMode() - { - $options = ['arg1', 'arg2', '--secret', 'somesecret']; - $site_name = 'site name'; - $mode = 'git'; - $status_code = 0; - $sftp_info = [ - 'host' => 'THE HOST', - 'port' => 'THE PORT', - 'username' => 'THE USER NAME', - ]; - - $expectedLoggedCommand = 'dummy arg1 arg2'; - - $this->environment->expects($this->once()) - ->method('isDevelopment') - ->willReturn(true); - $this->environment->expects($this->once()) - ->method('get') - ->with($this->equalTo('connection_mode')) - ->willReturn($mode); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo( - 'This environment is in read-only Git mode. ' - . 'If you want to make changes to the codebase of this site ' - . '(e.g. updating modules or plugins), you will need to toggle into read/write SFTP mode first.' - ) - ); - $this->site->expects($this->any())->method('get') - ->withConsecutive( - [$this->equalTo('name'),], - [$this->equalTo('name'),] - ) - ->willReturnOnConsecutiveCalls($site_name, $site_name); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Command: {site}.{env} -- {command} [Exit: {exit}]'), - $this->equalTo([ - 'site' => $site_name, - 'env' => $this->environment->id, - 'command' => "$expectedLoggedCommand", - 'exit' => $status_code, - ]) - ); - $this->environment->expects($this->once()) - ->method('sftpConnectionInfo') - ->willReturn($sftp_info); - - $out = $this->command->dummyCommand("$site_name.env", $options); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Remote/WPCommandTest.php b/tests/unit_tests/Commands/Remote/WPCommandTest.php deleted file mode 100644 index 03839811f..000000000 --- a/tests/unit_tests/Commands/Remote/WPCommandTest.php +++ /dev/null @@ -1,88 +0,0 @@ -command = $this->getMockBuilder(WPCommand::class) - ->disableOriginalConstructor() - ->setMethods([ - 'prepareEnvironment', - 'executeCommand', - 'log', - ]) - ->getMock(); - - $this->logger = $this->getMockBuilder(\Psr\Log\LoggerInterface::class) - ->getMock(); - - $this->command->method('log')->willReturn($this->logger); - } - - /** - * Tests the wp command - */ - public function testWPCommand() - { - $command_output = 'command output'; - - $this->command->expects($this->once()) - ->method('prepareEnvironment') - ->with($this->equalTo('dummy-site.dummy-env')); - $this->command->expects($this->once()) - ->method('executeCommand') - ->willReturn($command_output); - - $output = $this->command->wpCommand('dummy-site.dummy-env', ['wpcli', 'command', 'arguments']); - $this->assertEquals($command_output, $output); - } - - /** - * Tests the wp command with retry option - */ - public function testWPCommandWithRetry() - { - $command_output = 'command output'; - $retry_options = ['retry' => 3, 'progress' => false]; - - $this->command->expects($this->once()) - ->method('prepareEnvironment') - ->with($this->equalTo('dummy-site.dummy-env')); - $this->command->expects($this->exactly(3)) - ->method('executeCommand') - ->will($this->onConsecutiveCalls( - $this->throwException( - new \Pantheon\Terminus\Exceptions\TerminusProcessException('First attempt failed') - ), - $this->throwException( - new \Pantheon\Terminus\Exceptions\TerminusProcessException('Second attempt failed') - ), - $this->returnValue($command_output) - )); - - $this->logger->expects($this->exactly(2)) - ->method('warning') - ->withConsecutive( - [$this->equalTo('Retry attempt 1 for command failed.')], - [$this->equalTo('Retry attempt 2 for command failed.')] - ); - - $output = $this->command->wpCommand('dummy-site.dummy-env', ['wpcli', 'command', 'arguments'], $retry_options); - $this->assertEquals($command_output, $output); - } -} diff --git a/tests/unit_tests/Commands/SSHKey/AddCommandTest.php b/tests/unit_tests/Commands/SSHKey/AddCommandTest.php deleted file mode 100644 index 509d20bae..000000000 --- a/tests/unit_tests/Commands/SSHKey/AddCommandTest.php +++ /dev/null @@ -1,47 +0,0 @@ -command = new AddCommand($this->getConfig()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - } - - /** - * Tests the ssh-key:add command - */ - public function testSSHKeysAdd() - { - $file = 'some_file'; - - $this->ssh_keys->expects($this->once()) - ->method('addKey') - ->with($this->equalTo($file)); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Added SSH key from file {file}.'), - $this->equalTo(compact('file')) - ); - - $out = $this->command->add($file); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/SSHKey/ListCommandTest.php b/tests/unit_tests/Commands/SSHKey/ListCommandTest.php deleted file mode 100644 index db470f82c..000000000 --- a/tests/unit_tests/Commands/SSHKey/ListCommandTest.php +++ /dev/null @@ -1,73 +0,0 @@ -ssh_keys->method('getCollectedClass')->willReturn(SSHKey::class); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - } - - /** - * Tests the ssh-key:list command when there are no tokens - */ - public function testSSHKeyListEmpty() - { - $this->ssh_keys->method('serialize') - ->willReturn([]); - - $this->logger->expects($this->once()) - ->method('log') - ->with($this->equalTo('warning'), $this->equalTo('You have no SSH keys.')); - - $out = $this->command->listSSHKeys(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the ssh-key:list command - */ - public function testSSHKeysList() - { - $output = [ - '79e7e210bdf335bb8651a46b9a8417ab' => [ - 'id' => '79e7e210bdf335bb8651a46b9a8417ab', - 'hex' => '79:e7:e2:10:bd:f3:35:bb:86:51:a4:6b:9a:84:17:ab', - 'comment' => 'dev@foo.bar' - ], - '27a7a11ab9d2acbf91063410546ef980' => [ - 'id' => '27a7a11ab9d2acbf91063410546ef980', - 'hex' => '27:a7:a1:1a:b9:d2:ac:bf:91:06:34:10:54:6e:f9:80', - 'comment' => 'dev@baz.bar' - ] - ]; - $this->ssh_keys->method('serialize') - ->willReturn($output); - - $this->logger->expects($this->never()) - ->method($this->anything()); - - $out = $this->command->listSSHKeys(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($output, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/SSHKey/RemoveCommandTest.php b/tests/unit_tests/Commands/SSHKey/RemoveCommandTest.php deleted file mode 100644 index 5d2532e7e..000000000 --- a/tests/unit_tests/Commands/SSHKey/RemoveCommandTest.php +++ /dev/null @@ -1,111 +0,0 @@ -command = new RemoveCommand($this->getConfig()); - $this->command->setSession($this->session); - $this->command->setLogger($this->logger); - } - - - /** - * Tests the ssh-keys:delete command - */ - public function testSSHKeysDelete() - { - $token = $this->getMockBuilder(SSHKey::class) - ->disableOriginalConstructor() - ->getMock(); - - $token->expects($this->exactly(2)) - ->method('delete') - ->willReturn( - ['status_code' => 200] - ); - - $this->ssh_keys->expects($this->exactly(2)) - ->method('get') - ->with($this->equalTo('79e7e210bdf335bb8651a46b9a8417ab')) - ->willReturn( - $token - ); - - $out = $this->command->delete('79e7e210bdf335bb8651a46b9a8417ab'); - $this->assertNull($out); - - $out2 = $this->command->delete('79:e7:e2:10:bd:f3:35:bb:86:51:a4:6b:9a:84:17:ab'); - $this->assertNull($out2); - } - - /** - * Tests the ssh-keys:delete command when there are no tokens - */ - public function testSSHKeysDeleteNonExistant() - { - $token = $this->getMockBuilder(SSHKey::class) - ->disableOriginalConstructor() - ->getMock(); - - $token->expects($this->never()) - ->method('delete'); - - $this->ssh_keys->expects($this->once()) - ->method('get') - ->with($this->equalTo('123')) - ->will($this->throwException(new TerminusException())); - - - $this->setExpectedException(TerminusException::class); - - $out = $this->command->delete('123'); - $this->assertNull($out); - } - - /** - * Tests the ssh-keys:delete command when the API fails - */ - public function testSSHKeysDeleteAPIFailure() - { - $token = $this->getMockBuilder(SSHKey::class) - ->disableOriginalConstructor() - ->getMock(); - - $token->expects($this->once()) - ->method('delete') - ->will($this->throwException(new TerminusException('There was an problem deleting the SSH key.'))); - - - $this->ssh_keys->expects($this->once()) - ->method('get') - ->with($this->equalTo('123')) - ->willReturn( - $token - ); - - $this->setExpectedException( - \Exception::class, - 'There was an problem deleting the SSH key.' - ); - - $out = $this->command->delete('123'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/SSHKey/SSHKeyCommandTest.php b/tests/unit_tests/Commands/SSHKey/SSHKeyCommandTest.php deleted file mode 100644 index e92f7b611..000000000 --- a/tests/unit_tests/Commands/SSHKey/SSHKeyCommandTest.php +++ /dev/null @@ -1,54 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->ssh_keys = $this->getMockBuilder(SSHKeys::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->method('getUser') - ->willReturn($this->user); - $this->user->expects($this->any()) - ->method('getSSHKeys') - ->willReturn($this->ssh_keys); - } -} diff --git a/tests/unit_tests/Commands/Self/ClearCacheCommandTest.php b/tests/unit_tests/Commands/Self/ClearCacheCommandTest.php deleted file mode 100644 index 78f2251e6..000000000 --- a/tests/unit_tests/Commands/Self/ClearCacheCommandTest.php +++ /dev/null @@ -1,118 +0,0 @@ -getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $local_machine = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - $this->config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->filesystem = $this->getMockBuilder(Filesystem::class) - ->disableOriginalConstructor() - ->getMock(); - $this->finder = $this->getMockBuilder(Finder::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with($this->equalTo(LocalMachineHelper::class)) - ->willReturn($local_machine); - $local_machine->expects($this->once()) - ->method('getFilesystem') - ->with() - ->willReturn($this->filesystem); - $local_machine->expects($this->once()) - ->method('getFinder') - ->with() - ->willReturn($this->finder); - $this->finder->expects($this->once()) - ->method('files') - ->with() - ->willReturn($this->finder); - - $this->command = new ClearCacheCommand(); - $this->command->setLogger($this->logger); - $this->command->setContainer($container); - $this->command->setConfig($this->config); - } - - /** - * Tests the self:clear-cache command - */ - public function testClearCache() - { - $dir_name = 'some dir'; - $dirs = ['dir1', 'dir2', 'dir3', 'dir4',]; - $iterator = new Iterator($dirs); - - $this->config->expects(($this->once())) - ->method('get') - ->with($this->equalTo('command_cache_dir')) - ->willReturn($dir_name); - $this->finder->expects($this->once()) - ->method('in') - ->with($this->equalTo($dir_name)) - ->willReturn($this->finder); - $this->finder->expects($this->once()) - ->method('getIterator') - ->with() - ->willReturn($iterator); - - for ($i = 0; $i < count($dirs); $i++) { - $this->filesystem->expects($this->at($i)) - ->method('remove') - ->with($this->equalTo($dirs[$i])); - } - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('The local Terminus cache has been cleared.') - ); - - $out = $this->command->clearCache(); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Self/ConfigDumpCommandTest.php b/tests/unit_tests/Commands/Self/ConfigDumpCommandTest.php deleted file mode 100644 index 9e19455b2..000000000 --- a/tests/unit_tests/Commands/Self/ConfigDumpCommandTest.php +++ /dev/null @@ -1,74 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new ConfigDumpCommand(); - $this->command->setConfig($this->config); - } - - /** - * Tests the self:config-dump command - */ - public function testConfigDump() - { - $config_keys = [ - 'php_binary_path', - 'php_version', - 'php_ini', - 'project_config_path', - 'terminus_path', - 'terminus_version', - 'os_version', - ]; - $result_data = []; - - $this->config->expects($this->once()) - ->method('keys') - ->with() - ->willReturn($config_keys); - - $i = 0; - $rand = rand(); - foreach ($config_keys as $key) { - $this->config->method('getConstantFromKey') - ->willReturn($rand); - $this->config->method('get') - ->willReturn($rand); - $this->config->method('getSource') - ->willReturn($rand); - $result_data[] = ['key' => $key, 'env' => $rand, 'value' => $rand, 'source' => $rand,]; - } - - $out = $this->command->dumpConfig(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($result_data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Self/ConsoleCommandTest.php b/tests/unit_tests/Commands/Self/ConsoleCommandTest.php deleted file mode 100644 index 9db6d2d7a..000000000 --- a/tests/unit_tests/Commands/Self/ConsoleCommandTest.php +++ /dev/null @@ -1,40 +0,0 @@ -command = new ConsoleCommand(); - $this->command->setSites($this->sites); - } - - /** - * Tests the self:console command - */ - public function testConsole() - { - $out = $this->command->console('site.env'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Self/InfoCommandTest.php b/tests/unit_tests/Commands/Self/InfoCommandTest.php deleted file mode 100644 index 96e9c9926..000000000 --- a/tests/unit_tests/Commands/Self/InfoCommandTest.php +++ /dev/null @@ -1,47 +0,0 @@ - '*PHPBINARY*', - 'php_version' => '*PHPVERSION*', - 'php_ini' => '*PHPINI*', - 'project_config_path' => '*CONFIGDIR*', - 'terminus_path' => '*TERMINUSROOT*', - 'terminus_version' => '*TERMINUSVERSION*', - 'os_version' => '*OSVERSION*', - ]; - - $this->config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->config->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($output_data); - - $command = new InfoCommand(); - $command->setConfig($this->config); - $info = $command->info(); - - $this->assertInstanceOf(PropertyList::class, $info); - $this->assertEquals($output_data, $info->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Site/CreateCommandTest.php b/tests/unit_tests/Commands/Site/CreateCommandTest.php deleted file mode 100644 index a880d8b89..000000000 --- a/tests/unit_tests/Commands/Site/CreateCommandTest.php +++ /dev/null @@ -1,266 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstreams = $this->getMockBuilder(Upstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream = $this->getMockBuilder(Upstream::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream->id = 'upstream_id'; - - $this->command = new CreateCommand(); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->command->setConfig($this->getConfig()); - $this->command->setContainer($this->getContainer()); - } - - /** - * Tests the site:create command - */ - public function testCreate() - { - $site_name = 'site_name'; - $label = 'label'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow2 = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->sites->expects($this->once()) - ->method('nameIsTaken') - ->with($this->equalTo($site_name)) - ->willReturn(false); - - $this->expectUpstreams(); - $this->sites->expects($this->once()) - ->method('create') - ->with($this->equalTo(['site_name' => $site_name, 'label' => $label, 'preferred_zone' => 'eu'])) - ->willReturn($workflow); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Creating a new site...') - ); - - $this->expectWorkflowProcessing(); - $workflow->expects($this->once()) - ->method('get') - ->with($this->equalTo('waiting_for_task')) - ->willReturn((object)['site_id' => 'site UUID',]); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Deploying CMS...') - ); - $this->site->expects($this->once()) - ->method('deployProduct') - ->with($this->equalTo($this->upstream->id)) - ->willReturn($workflow2); - $this->logger->expects($this->at(2)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Deployed CMS') - ); - - $out = $this->command->create($site_name, $label, 'upstream', ['org' => null, 'region' => 'eu']); - $this->assertNull($out); - } - - /** - * Tests the site:create command when the site name already exists - */ - public function testCreateDuplicate() - { - $site_name = 'site_name'; - - $this->sites->expects($this->once()) - ->method('nameIsTaken') - ->with($this->equalTo($site_name)) - ->willReturn(true); - - $this->expectWorkflowProcessing(); - $this->setExpectedException(TerminusException::class, "The site name $site_name is already taken."); - - $out = $this->command->create($site_name, $site_name, 'upstream'); - $this->assertNull($out); - } - - /** - * Tests the site:create command when associating the new site with an organization - */ - public function testCreateInOrg() - { - $site_name = 'site_name'; - $label = 'label'; - $org_name = 'org name'; - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow2 = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $organization->id = 'org_id'; - - $this->sites->expects($this->once()) - ->method('nameIsTaken') - ->with($this->equalTo($site_name)) - ->willReturn(false); - - $this->expectUpstreams(); - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($user_org_memberships); - $user_org_memberships->expects($this->once()) - ->method('get') - ->with($this->equalTo($org_name)) - ->willReturn($user_org_membership); - $user_org_membership->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($organization); - - $this->sites->expects($this->once()) - ->method('create') - ->with($this->equalTo([ - 'site_name' => $site_name, - 'label' => $label, - 'organization_id' => $organization->id, - ])) - ->willReturn($workflow); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Creating a new site...') - ); - - $this->config->expects($this->at(0)) - ->method('get') - ->with('command_site_options_region') - ->willReturn(null); - $this->expectContainerRetrieval(); - $this->expectProgressBarCycling(); - - $workflow->expects($this->once()) - ->method('get') - ->with($this->equalTo('waiting_for_task')) - ->willReturn((object)['site_id' => 'site UUID',]); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Deploying CMS...') - ); - $this->site->expects($this->once()) - ->method('deployProduct') - ->with($this->equalTo($this->upstream->id)) - ->willReturn($workflow2); - $this->logger->expects($this->at(2)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Deployed CMS') - ); - - $out = $this->command->create($site_name, $label, 'upstream', ['org' => $org_name,]); - $this->assertNull($out); - } - - protected function expectUpstreams() - { - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getUpstreams') - ->with() - ->willReturn($this->upstreams); - $this->upstreams->expects($this->once()) - ->method('get') - ->willReturn($this->upstream); - } -} diff --git a/tests/unit_tests/Commands/Site/DeleteCommandTest.php b/tests/unit_tests/Commands/Site/DeleteCommandTest.php deleted file mode 100644 index 42671dbe2..000000000 --- a/tests/unit_tests/Commands/Site/DeleteCommandTest.php +++ /dev/null @@ -1,152 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->message = 'Deleted {site} from Pantheon'; - - $this->site_name = 'my-site'; - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - - $this->command = new DeleteCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - } - - /** - * Exercises the site:delete command - */ - public function testDelete() - { - $this->expectConfirmation(); - $this->expectWorkflowProcessing(); - $this->site->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($this->workflow); - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($this->message); - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo($this->message), - $this->equalTo(['site' => $this->site_name,]) - ); - - $out = $this->command->delete($this->site_name); - $this->assertNull($out); - } - - /** - * Exercises the site:delete command when the workflow ends with a 404 error - */ - public function testDelete404() - { - $this->expectConfirmation(); - $this->expectWorkflowProcessing(); - $this->site->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($this->workflow); - $this->progress_bar->method('cycle') - ->will($this->throwException(new \Exception($this->message, 404))); - $this->workflow->expects($this->never()) - ->method('getMessage'); - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo($this->message), - $this->equalTo(['site' => $this->site_name,]) - ); - - $out = $this->command->delete($this->site_name); - $this->assertNull($out); - } - - /** - * Exercises the site:delete command when the workflow returns a non-404 error - */ - public function testDeleteErrs() - { - $this->expectConfirmation(); - $this->expectInteractiveInput(); - $this->expectContainerRetrieval(); - $this->site->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($this->workflow); - $this->getProgressBar()->method('cycle') - ->will($this->throwException(new \Exception($this->message, 403))); - $this->setExpectedException(\Exception::class, $this->message); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->delete($this->site_name); - $this->assertNull($out); - } - - /** - * Exercises the site:delete command when Site::delete fails to ensure message gets through - */ - public function testDeleteFailure() - { - $exception_message = 'Error message'; - - $this->expectConfirmation(); - $this->expectWorkflowProcessing(); - $this->site->expects($this->once()) - ->method('delete') - ->with() - ->will($this->throwException(new \Exception($exception_message))); - $this->logger->expects($this->never()) - ->method('log'); - - $this->setExpectedException(\Exception::class, $exception_message); - - $out = $this->command->delete($this->site_name); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/InfoCommandTest.php b/tests/unit_tests/Commands/Site/InfoCommandTest.php deleted file mode 100644 index 4efb99255..000000000 --- a/tests/unit_tests/Commands/Site/InfoCommandTest.php +++ /dev/null @@ -1,41 +0,0 @@ -command = new InfoCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Exercises site:info - */ - public function testSiteImportValidURL() - { - $this->site->expects($this->once()) - ->method('serialize') - ->willReturn(['data' => 'array',]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->info('my-site'); - $this->assertInstanceOf(PropertyList::class, $out); - } -} diff --git a/tests/unit_tests/Commands/Site/ListCommandTest.php b/tests/unit_tests/Commands/Site/ListCommandTest.php deleted file mode 100644 index 6ad1da56a..000000000 --- a/tests/unit_tests/Commands/Site/ListCommandTest.php +++ /dev/null @@ -1,429 +0,0 @@ -session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user->id = 'userID'; - - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the site:list command with no filters and all membership types - */ - public function testListAllSites() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - - $this->site->memberships = ['org_id: org_url']; - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['abc' => $dummy_info, 'def' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['abc' => $dummy_info, 'def' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Exercises site:list with no filters and team membership type - */ - public function testListTeamSitesOnly() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'user_id: Team', - ]; - - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => true,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => true, 'owner' => null, 'org' => 'all', 'name' => null, 'upstream' => null,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command using no filters and belonging to an org - */ - public function testListOrgSitesOnly() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - - $user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $org = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $org->id = 'orgID'; - - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($user_org_memberships); - $user_org_memberships->expects($this->once()) - ->method('get') - ->with($org->id) - ->willReturn($user_org_membership); - $user_org_membership->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($org); - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => $org->id, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => false, 'owner' => null, 'org' => $org->id, 'name' => null, 'upstream' => null,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when filtering for either membership type - */ - public function testListByNameRegex() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - $regex = '(.*)'; - - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('filterByName') - ->with($this->equalTo($regex)) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => false, 'owner' => null, 'org' => 'all', 'name' => $regex, 'upstream' => null,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when either membership type owned by a user of a given ID - */ - public function testListByOwner() - { - $user_id = 'user_id'; - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => $user_id, - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - - $this->site->memberships = ['org_id: org_url']; - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->once()) - ->method('filterByOwner') - ->with($this->equalTo($user_id)) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => false, 'owner' => $user_id, 'org' => 'all', 'name' => null, 'upstream' => null,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when either membership type owned by a user of a given ID - */ - public function testListByUpstream() - { - $product_id = '8a129104-9d37-4082-aaf8-e6f31154644e'; - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - 'product_id' => $product_id, - ]; - - $this->site->memberships = ['org_id: org_url']; - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('filterByUpstream') - ->with($product_id) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => false, 'owner' => null, 'org' => 'all', 'name' => null, 'upstream' => $product_id,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when either membership type owned by a user is the logged-in user - */ - public function testListMyOwn() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'service_level' => 'pro', - 'framework' => 'cms', - 'owner' => $this->user->id, - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->once()) - ->method('filterByOwner') - ->with($this->equalTo($this->user->id)) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - ['team' => false, 'owner' => 'me', 'org' => 'all', 'name' => null, 'upstream' => null,] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when filtering for plan name - */ - public function testListByPlanName() - { - $dummy_info = [ - 'name' => 'my-site', - 'id' => 'site_id', - 'plan_name' => 'Basic', - 'framework' => 'cms', - 'owner' => 'user_id', - 'created' => '1984-07-28 16:40', - 'memberships' => 'org_id: org_url', - ]; - $plan_name = 'Sandbox'; - - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->once()) - ->method('filterByPlanName') - ->with($this->equalTo($plan_name)) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn(['a' => $dummy_info, 'b' => $dummy_info,]); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->index( - [ - 'team' => false, - 'owner' => null, - 'org' => 'all', - 'name' => null, - 'plan' => $plan_name, - 'upstream' => null, - ] - ); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals(['a' => $dummy_info, 'b' => $dummy_info,], $out->getArrayCopy()); - } - - /** - * Tests the site:list command when the user has no sites - */ - public function testListNoSites() - { - $this->sites->expects($this->once()) - ->method('fetch') - ->with($this->equalTo(['org_id' => null, 'team_only' => false,])) - ->willReturn($this->sites); - $this->sites->expects($this->never()) - ->method('filterByName'); - $this->sites->expects($this->never()) - ->method('filterByOwner'); - $this->sites->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('You have no sites.') - ); - - $out = $this->command->index(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals([], $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Site/LookupCommandTest.php b/tests/unit_tests/Commands/Site/LookupCommandTest.php deleted file mode 100644 index 596625c71..000000000 --- a/tests/unit_tests/Commands/Site/LookupCommandTest.php +++ /dev/null @@ -1,61 +0,0 @@ -command = new LookupCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Exercises site:lookup where the result is that the site exists and you have access to it - */ - public function testSiteLookupExists() - { - $site_name = 'my-site'; - - $this->site->expects($this->once()) - ->method('serialize') - ->willReturn(['name' => $site_name, 'id' => 'site_id']); - - $out = $this->command->lookup($site_name); - $this->assertInstanceOf(PropertyList::class, $out); - - $this->assertEquals(['name' => $site_name, 'id' => 'site_id'], $out->getArrayCopy()); - } - - /** - * Exercises site:lookup where the result is that the site does not exist - * - * @expectedException \Exception - * @expectedExceptionMessage A site named my-site was not found. - */ - public function testSiteLooupDoesNotExist() - { - $site_name = 'my-site'; - - $this->sites->method('get') - ->with($this->equalTo($site_name)) - ->will($this->throwException(new \Exception("A site named $site_name was not found."))); - - $out = $this->command->lookup($site_name); - $this->assertInstanceOf(PropertyList::class, $out); - } -} diff --git a/tests/unit_tests/Commands/Site/Org/AddCommandTest.php b/tests/unit_tests/Commands/Site/Org/AddCommandTest.php deleted file mode 100644 index de926f6d9..000000000 --- a/tests/unit_tests/Commands/Site/Org/AddCommandTest.php +++ /dev/null @@ -1,76 +0,0 @@ -org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->method('getOrganizationMemberships')->willReturn($this->org_memberships); - - $this->organization->expects($this->any()) - ->method('getName') - ->willReturn('org_id'); - - $this->site->expects($this->any()) - ->method('getName') - ->willReturn('my-site'); - - $this->command = new AddCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - public function testAdd() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->org_memberships->expects($this->once()) - ->method('create') - ->with($this->organization, 'team_member') - ->willReturn($workflow); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Adding {org} as a supporting organization to {site}.'), - $this->equalTo(['site' => 'my-site', 'org' => 'org_id',]) - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - $this->command->add('my-site', 'org_id'); - } -} diff --git a/tests/unit_tests/Commands/Site/Org/ListCommandTest.php b/tests/unit_tests/Commands/Site/Org/ListCommandTest.php deleted file mode 100644 index 681e61f18..000000000 --- a/tests/unit_tests/Commands/Site/Org/ListCommandTest.php +++ /dev/null @@ -1,74 +0,0 @@ -org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_memberships->method('getCollectedClass')->willReturn(SiteOrganizationMembership::class); - $this->site->method('getOrganizationMemberships')->willReturn($this->org_memberships); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests site:org:list - */ - public function testListOrgs() - { - $data = [ - '000' => ['org_name' => 'abc', 'org_id' => '000'], - '111' => ['org_name' => 'def', 'org_id' => '111'], - ]; - - $this->org_memberships->expects($this->once()) - ->method('serialize') - ->willReturn($data); - - $out = $this->command->listOrgs('my-site'); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($data, $out->getArrayCopy()); - } - - /** - * Tests site:org:list when there aren't any - */ - public function testListOrgsNone() - { - $this->org_memberships->expects($this->once()) - ->method('serialize') - ->willReturn([]); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('warning'), - $this->equalTo('This site has no supporting organizations.') - ); - - $this->command->listOrgs('my-site'); - } -} diff --git a/tests/unit_tests/Commands/Site/Org/RemoveCommandTest.php b/tests/unit_tests/Commands/Site/Org/RemoveCommandTest.php deleted file mode 100644 index bc25aa5d0..000000000 --- a/tests/unit_tests/Commands/Site/Org/RemoveCommandTest.php +++ /dev/null @@ -1,104 +0,0 @@ -site_name = 'site name'; - - $this->org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($this->org_memberships); - $this->organization->expects($this->once()) - ->method('getName') - ->willReturn($this->organization->id); - $this->site->expects($this->once()) - ->method('getName') - ->willReturn($this->site_name); - - $this->command = new RemoveCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the site:org:remove command - */ - public function testRemove() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - // workflow succeeded - $workflow->expects($this->once()) - ->method('getMessage') - ->willReturn('successful workflow'); - - $membership = $this->getMockBuilder(SiteOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $membership->expects($this->once()) - ->method('delete') - ->with() - ->willReturn($workflow); - - $this->org_memberships->expects($this->once()) - ->method('get') - ->with($this->equalTo($this->organization->id)) - ->willReturn($membership); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Removing {org} as a supporting organization from {site}.'), - $this->equalTo(['site' => $this->site_name, 'org' => $this->organization->id,]) - ); - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $out = $this->command->remove($this->site_name, $this->organization->id); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/Team/AddCommandTest.php b/tests/unit_tests/Commands/Site/Team/AddCommandTest.php deleted file mode 100644 index 032c247d0..000000000 --- a/tests/unit_tests/Commands/Site/Team/AddCommandTest.php +++ /dev/null @@ -1,130 +0,0 @@ -message = 'message'; - - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($this->message); - - $this->command = new AddCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the site:team:add command - */ - public function testAddCommand() - { - $new_member = 'test@example.com'; - $role = 'any_role'; - - $this->site->expects($this->once()) - ->method('getFeature') - ->with('change_management') - ->willReturn(true); - $this->user_memberships->expects($this->once()) - ->method('create') - ->willReturn($this->workflow) - ->with($new_member, $role); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($this->message) - ); - - $out = $this->command->add('mysite', $new_member, $role); - $this->assertNull($out); - } - - /** - * Tests the site:team:add command when change_management is not enabled - */ - public function testAddCommandRestricted() - { - $new_member = 'test@example.com'; - $role = 'any_role'; - $default_role = 'team_member'; - - $this->site->expects($this->once()) - ->method('getFeature') - ->with('change_management') - ->willReturn(false); - $this->user_memberships->expects($this->once()) - ->method('create') - ->willReturn($this->workflow) - ->with($new_member, $default_role); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('Site does not have change management enabled, defaulting to user role {role}.'), - $this->equalTo(['role' => $default_role,]) - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($this->message) - ); - - $out = $this->command->add('mysite', $new_member, $role); - $this->assertNull($out); - } - - - /** - * Tests the site:team:add command when change_management is not enabled and the role param is not given - */ - public function testAddCommandRestrictedNoRole() - { - $new_member = 'test@example.com'; - $default_role = 'team_member'; - - $this->site->expects($this->never()) - ->method('getFeature'); - $this->user_memberships->expects($this->once()) - ->method('create') - ->willReturn($this->workflow) - ->with($new_member, $default_role); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($this->message) - ); - - $out = $this->command->add('mysite', $new_member); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/Team/ListCommandTest.php b/tests/unit_tests/Commands/Site/Team/ListCommandTest.php deleted file mode 100644 index 35b1c2ab8..000000000 --- a/tests/unit_tests/Commands/Site/Team/ListCommandTest.php +++ /dev/null @@ -1,60 +0,0 @@ -command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the site:team:list command - */ - public function testListCommand() - { - $expected = [ - 'abc' => [ - 'firstname' => 'Daisy', - 'lastname' => 'Duck', - 'email' => 'daisy@duck.com', - 'user_id' => 'abc', - 'role' => 'team_member', - 'is_owner' => false, - ], - 'def' => [ - 'firstname' => 'Mickey', - 'lastname' => 'Mouse', - 'email' => 'mickey@mouse.com', - 'user_id' => 'def', - 'role' => 'team_member', - 'is_owner' => true, - ], - ]; - - $this->user_memberships->expects($this->once()) - ->method('serialize') - ->willReturn($expected); - $this->user_memberships->expects($this->once()) - ->method('getCollectedClass') - ->willReturn(SiteUserMembership::class); - - $actual = $this->command->teamList('mysite'); - $this->assertEquals($expected, $actual->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Site/Team/RemoveCommandTest.php b/tests/unit_tests/Commands/Site/Team/RemoveCommandTest.php deleted file mode 100644 index 70ae66be9..000000000 --- a/tests/unit_tests/Commands/Site/Team/RemoveCommandTest.php +++ /dev/null @@ -1,96 +0,0 @@ -message = 'message'; - - $this->user_membership->expects($this->once()) - ->method('delete') - ->willReturn($this->workflow); - - $this->command = new RemoveCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the site:team:remove command when it succeeds without issue - */ - public function testRemoveCommand() - { - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($this->message); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($this->message) - ); - - $out = $this->command->remove('mysite', 'test@example.com'); - $this->assertNull($out); - } - - /** - * Tests the site:team:remove command when the workflow throws an error because - * the user is no longer a team member permitted to access the site's workflows - */ - public function testRemoveCommandRemovingSelf() - { - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new \Exception($this->message, 404))); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Removed your user from site team') - ); - - $out = $this->command->remove('mysite', 'test@example.com'); - $this->assertNull($out); - } - - /** - * Tests the site:team:remove command when the workflow throws an error but it is not the error - * which would occur when removing oneself from a team - */ - public function testRemoveCommandErrs() - { - $this->progress_bar->method('cycle') - ->with() - ->will($this->throwException(new \Exception($this->message, 403))); - $this->setExpectedException(\Exception::class, $this->message); - - $out = $this->command->remove('mysite', 'test@example.com'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/Team/RoleCommandTest.php b/tests/unit_tests/Commands/Site/Team/RoleCommandTest.php deleted file mode 100644 index 699b62f77..000000000 --- a/tests/unit_tests/Commands/Site/Team/RoleCommandTest.php +++ /dev/null @@ -1,84 +0,0 @@ -command = new RoleCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->command->setContainer($this->getContainer()); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the site:team:role command - */ - public function testRoleCommand() - { - $message = 'message'; - $this->site->expects($this->once()) - ->method('getFeature') - ->with('change_management') - ->willReturn(true); - $this->user_membership->expects($this->once()) - ->method('setRole') - ->with('admin') - ->willReturn($this->workflow); - $this->workflow->expects($this->once()) - ->method('getMessage') - ->with() - ->willReturn($message); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($message) - ); - - $out = $this->command->role('mysite', 'test@example.com', 'admin'); - $this->assertNull($out); - } - - /** - * Tests the site:team:role command when the site cannot change management - */ - public function testRoleCommandRestricted() - { - $this->site->expects($this->once()) - ->method('getFeature') - ->with('change_management') - ->willReturn(false); - $this->user_membership->expects($this->never()) - ->method('setRole'); - $this->workflow->expects($this->never()) - ->method('getMessage'); - $this->logger->expects($this->never()) - ->method('log'); - - $this->setExpectedException( - TerminusException::class, - 'This site does not have its change-management option enabled.' - ); - - $out = $this->command->role('mysite', 'test@example.com', 'admin'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/Team/TeamCommandTest.php b/tests/unit_tests/Commands/Site/Team/TeamCommandTest.php deleted file mode 100644 index 390bb9f76..000000000 --- a/tests/unit_tests/Commands/Site/Team/TeamCommandTest.php +++ /dev/null @@ -1,41 +0,0 @@ -user_memberships = $this->getMockBuilder(SiteUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site->method('getUserMemberships')->willReturn($this->user_memberships); - - $this->user_membership = $this->getMockBuilder(SiteUserMembership::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user_memberships->method('get') - ->willReturn($this->user_membership); - - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } -} diff --git a/tests/unit_tests/Commands/Site/Upstream/ClearCacheCommandTest.php b/tests/unit_tests/Commands/Site/Upstream/ClearCacheCommandTest.php deleted file mode 100644 index 8bb9fff40..000000000 --- a/tests/unit_tests/Commands/Site/Upstream/ClearCacheCommandTest.php +++ /dev/null @@ -1,64 +0,0 @@ -command = new ClearCacheCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setContainer($this->getContainer()); - $this->expectWorkflowProcessing(); - } - - public function testClearCache() - { - $upstream = $this->getMockBuilder(SiteUpstream::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $site_name = 'site_name'; - - $this->site->expects($this->once()) - ->method('getUpstream') - ->with() - ->willReturn($upstream); - $upstream->expects($this->once()) - ->method('clearCache') - ->with() - ->willReturn($workflow); - $this->site->method('get')->willReturn($site_name); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Code cache cleared on {site}.'), - $this->equalTo(['site' => $site_name,]) - ); - - $out = $this->command->clearCache($site_name); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Site/Upstream/SetCommandTest.php b/tests/unit_tests/Commands/Site/Upstream/SetCommandTest.php deleted file mode 100644 index 63b7499fb..000000000 --- a/tests/unit_tests/Commands/Site/Upstream/SetCommandTest.php +++ /dev/null @@ -1,321 +0,0 @@ -authorizations = $this->getMockBuilder(SiteAuthorizations::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstreams = $this->getMockBuilder(Upstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream = $this->getMockBuilder(Upstream::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site_upstream = $this->getMockBuilder(SiteUpstream::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site_upstream->id = 'Site upstream ID'; - $this->upstream_data = ['framework' => 'Framework', 'id' => 'upstream_id', 'label' => 'Upstream Name',]; - - parent::setUp(); - - $this->site->expects($this->once()) - ->method('getAuthorizations') - ->with() - ->willReturn($this->authorizations); - - $this->command = new SetCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->command->setInput($this->input); - $this->command->setSession($this->session); - $this->command->setOutput($this->output); - $this->expectWorkflowProcessing(); - - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Exercises the site:upstream:set command - */ - public function testSet() - { - $site_name = 'my-site'; - $upstream_id = $this->upstream_data['id']; - - $this->expectGetUpstream($upstream_id); - - $this->authorizations->expects($this->once()) - ->method('can') - ->with('switch_upstream') - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getUpstream') - ->with() - ->willReturn($this->site_upstream); - $this->logger->expects($this->at(0)) - ->method('log')->with( - 'info', - 'To undo this change run `terminus site:upstream:set {site} {upstream}`', - ['site' => $this->site->id, 'upstream' => $this->site_upstream->id,] - ); - - $this->site - ->method('getName') - ->willReturn($site_name); - - $this->expectConfirmation(); - $this->site->expects($this->once()) - ->method('setUpstream') - ->with($upstream_id) - ->willReturn($this->workflow); - - $this->logger->expects($this->at(1)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Set upstream for {site} to {upstream}'), - $this->equalTo(['site' => $site_name, 'upstream' => $this->upstream_data['label']]) - ); - - $out = $this->command->set($site_name, $upstream_id); - $this->assertNull($out); - } - - /** - * Exercises the site:upstream:set command when Site::delete() fails to ensure message gets through - */ - public function testSetFailure() - { - $site_name = 'my-site'; - $upstream_id = $this->upstream_data['id']; - $exception_message = 'Error message'; - - $this->expectGetUpstream($upstream_id); - - $this->authorizations->expects($this->once()) - ->method('can') - ->with('switch_upstream') - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getUpstream') - ->with() - ->willReturn($this->site_upstream); - $this->logger->expects($this->at(0)) - ->method('log')->with( - 'info', - 'To undo this change run `terminus site:upstream:set {site} {upstream}`', - ['site' => $this->site->id, 'upstream' => $this->site_upstream->id,] - ); - $this->expectConfirmation(); - $this->site->expects($this->once()) - ->method('setUpstream') - ->with() - ->will($this->throwException(new \Exception($exception_message))); - - $this->setExpectedException(\Exception::class, $exception_message); - - $out = $this->command->set($site_name, $upstream_id); - $this->assertNull($out); - } - - /** - * Exercises the site:upstream:set command when the user does not have permission to do this - */ - public function testSetInsufficientPermission() - { - $site_name = 'my-site'; - $upstream_id = $this->upstream_data['id']; - - $this->authorizations->expects($this->once()) - ->method('can') - ->with('switch_upstream') - ->willReturn(false); - $this->site->expects($this->never()) - ->method('getUpstream'); - $this->site->expects($this->never()) - ->method('setUpstream'); - $this->setExpectedException( - TerminusException::class, - 'You do not have permission to change the upstream of this site.' - ); - - $out = $this->command->set($site_name, $upstream_id); - $this->assertNull($out); - } - - /** - * Exercises the site:upstream:set command when the site being set did not have a valid previous upstream - */ - public function testSetNoPreviousUpstream() - { - $site_name = 'my-site'; - $upstream_id = $this->upstream_data['id']; - $this->site_upstream->id = null; - - $this->expectGetUpstream($upstream_id); - - $this->authorizations->expects($this->once()) - ->method('can') - ->with('switch_upstream') - ->willReturn(true); - $this->site->expects($this->once()) - ->method('getUpstream') - ->with() - ->willReturn($this->site_upstream); - - $this->site - ->method('getName') - ->willReturn($site_name); - - $this->expectConfirmation(); - $this->site->expects($this->once()) - ->method('setUpstream') - ->with($upstream_id) - ->willReturn($this->workflow); - - $this->logger->expects($this->once()) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('Set upstream for {site} to {upstream}'), - $this->equalTo(['site' => $site_name, 'upstream' => $this->upstream_data['label'],]) - ); - - $out = $this->command->set($site_name, $upstream_id); - $this->assertNull($out); - } - - /** - * Exercises the site:upstream:set command when the requested upstream cannot be found - */ - public function testSetUpstreamDNE() - { - $site_name = 'my-site'; - $upstream_id = $this->upstream_data['id']; - $exception_message = 'Error message'; - - $this->expectGetUpstreams(); - - $this->authorizations->expects($this->once()) - ->method('can') - ->with('switch_upstream') - ->willReturn(true); - $this->upstreams->expects($this->once()) - ->method('get') - ->with($upstream_id) - ->will($this->throwException(new \Exception($exception_message))); - $this->logger->expects($this->never()) - ->method('log'); - $this->site->expects($this->never()) - ->method('setUpstream'); - - $this->setExpectedException(\Exception::class, $exception_message); - - $out = $this->command->set($site_name, $upstream_id); - $this->assertNull($out); - } - - /** - * @param $upstream_id - * @return Upstream - */ - protected function expectGetUpstream($upstream_id) - { - $this->expectGetUpstreams(); - $this->upstreams->expects($this->once()) - ->method('get') - ->with($upstream_id) - ->willReturn($this->upstream); - $this->upstream->expects($this->once()) - ->method('get') - ->with('label') - ->willReturn($this->upstream_data['label']); - $this->upstream->id = $this->upstream_data['id']; - return $this->upstream; - } - - protected function expectGetUpstreams() - { - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->expects($this->once()) - ->method('getUpstreams') - ->with() - ->willReturn($this->upstreams); - } -} diff --git a/tests/unit_tests/Commands/Solr/DisableCommandTest.php b/tests/unit_tests/Commands/Solr/DisableCommandTest.php deleted file mode 100644 index 5c4ef1bca..000000000 --- a/tests/unit_tests/Commands/Solr/DisableCommandTest.php +++ /dev/null @@ -1,52 +0,0 @@ -getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->solr = $this->getMockBuilder(Solr::class) - ->disableOriginalConstructor() - ->getMock(); - $this->solr->expects($this->once()) - ->method('disable') - ->willReturn($workflow); - $this->site->method('getSolr')->willReturn($this->solr); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command = new DisableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - $this->command->disable('mysite'); - } -} diff --git a/tests/unit_tests/Commands/Solr/EnableCommandTest.php b/tests/unit_tests/Commands/Solr/EnableCommandTest.php deleted file mode 100644 index 9ce1ca866..000000000 --- a/tests/unit_tests/Commands/Solr/EnableCommandTest.php +++ /dev/null @@ -1,52 +0,0 @@ -getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - // workflow succeeded - $workflow->expects($this->once())->method('getMessage')->willReturn('successful workflow'); - - $this->solr = $this->getMockBuilder(Solr::class) - ->disableOriginalConstructor() - ->getMock(); - $this->solr->expects($this->once()) - ->method('enable') - ->willReturn($workflow); - $this->site->method('getSolr')->willReturn($this->solr); - - $this->logger->expects($this->at(0)) - ->method('log')->with( - $this->equalTo('notice'), - $this->equalTo('successful workflow') - ); - - $this->command = new EnableCommand(); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - $this->command->enable('mysite'); - } -} diff --git a/tests/unit_tests/Commands/Tag/AddCommandTest.php b/tests/unit_tests/Commands/Tag/AddCommandTest.php deleted file mode 100644 index 01afb330c..000000000 --- a/tests/unit_tests/Commands/Tag/AddCommandTest.php +++ /dev/null @@ -1,56 +0,0 @@ -command = new AddCommand($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the tag:add command - */ - public function testAdd() - { - $tag = 'tag'; - - $this->tags->expects($this->once()) - ->method('create') - ->with($this->equalTo($tag)); - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->org_name); - $this->expectGetNames(); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{org} has tagged {site} with {tag}.'), - $this->equalTo(['site' => $this->site_name, 'org' => $this->org_name, 'tag' => $tag,]) - ); - - $out = $this->command->add($this->site->id, $this->organization->id, $tag); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Tag/ListCommandTest.php b/tests/unit_tests/Commands/Tag/ListCommandTest.php deleted file mode 100644 index e6e522abf..000000000 --- a/tests/unit_tests/Commands/Tag/ListCommandTest.php +++ /dev/null @@ -1,70 +0,0 @@ -command = new ListCommand($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the tag:list command when there are tags to display - */ - public function testListTags() - { - $tags = ['tag1', 'tag2',]; - - $this->tags->expects($this->once()) - ->method('ids') - ->with() - ->willReturn($tags); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->listTags($this->site->id, $this->organization->id); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($out->getArrayCopy(), $tags); - } - - /** - * Tests the tag:list command when there are no tags to display - */ - public function testListTagsWhenEmpty() - { - $tags = []; - - $this->tags->expects($this->once()) - ->method('ids') - ->with() - ->willReturn($tags); - $this->expectGetNames(); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{org} does not have any tags for {site}.'), - $this->equalTo(['site' => $this->site_name, 'org' => $this->org_name,]) - ); - - $out = $this->command->listTags($this->site->id, $this->organization->id); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($out->getArrayCopy(), $tags); - } -} diff --git a/tests/unit_tests/Commands/Tag/RemoveCommandTest.php b/tests/unit_tests/Commands/Tag/RemoveCommandTest.php deleted file mode 100644 index c01c87835..000000000 --- a/tests/unit_tests/Commands/Tag/RemoveCommandTest.php +++ /dev/null @@ -1,56 +0,0 @@ -command = new RemoveCommand($this->config); - $this->command->setLogger($this->logger); - $this->command->setSession($this->session); - } - - /** - * Tests the tag:remove command - */ - public function testRemove() - { - $tag_string = 'tag'; - - $tag = $this->getMockBuilder(Tag::class) - ->disableOriginalConstructor() - ->getMock(); - $this->tags->expects($this->once()) - ->method('get') - ->with($this->equalTo($tag_string)) - ->willReturn($tag); - $tag->expects($this->once()) - ->method('delete') - ->with(); - $this->expectGetNames(); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{org} has removed the {tag} tag from {site}.'), - $this->equalTo(['site' => $this->site_name, 'org' => $this->org_name, 'tag' => $tag_string,]) - ); - - $out = $this->command->remove($this->site->id, $this->organization->id, $tag_string); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Tag/TagCommandTest.php b/tests/unit_tests/Commands/Tag/TagCommandTest.php deleted file mode 100644 index ccaab5cef..000000000 --- a/tests/unit_tests/Commands/Tag/TagCommandTest.php +++ /dev/null @@ -1,131 +0,0 @@ -site->id = 'site_id'; - $this->site_name = 'site_name'; - $this->org_name = 'org_name'; - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->tags = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization->id = 'org_id'; - $org_site_memberships = $this->getMockBuilder(OrganizationSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $org_site_membership = $this->getMockBuilder(OrganizationSiteMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $this->tags = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - $user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($user_org_memberships); - $user_org_memberships->expects($this->once()) - ->method('get') - ->with($this->organization->id) - ->willReturn($user_org_membership); - $user_org_membership->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($this->organization); - $this->organization->expects($this->once()) - ->method('getSiteMemberships') - ->with() - ->willReturn($org_site_memberships); - $org_site_memberships->expects($this->once()) - ->method('get') - ->with($this->site->id) - ->willReturn($org_site_membership); - $org_site_membership->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($this->site); - $org_site_membership->expects($this->once()) - ->method('getTags') - ->with() - ->willReturn($this->tags); - } - - /** - * Set the test to expect Organization::getName() and Site::getName() - */ - protected function expectGetNames() - { - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->org_name); - } -} diff --git a/tests/unit_tests/Commands/Upstream/InfoCommandTest.php b/tests/unit_tests/Commands/Upstream/InfoCommandTest.php deleted file mode 100644 index ca9f481ce..000000000 --- a/tests/unit_tests/Commands/Upstream/InfoCommandTest.php +++ /dev/null @@ -1,41 +0,0 @@ -command = new InfoCommand($this->getConfig()); - $this->command->setSession($this->session); - } - - /** - * Tests the upstream:info command - */ - public function testInfo() - { - $upstream_id = 'upstream_id'; - $this->upstreams->expects($this->once()) - ->method('get') - ->with($this->equalTo($upstream_id)) - ->willReturn($this->upstream); - - $out = $this->command->info($upstream_id); - $this->assertInstanceOf(PropertyList::class, $out); - $this->assertEquals($this->data, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Upstream/ListCommandTest.php b/tests/unit_tests/Commands/Upstream/ListCommandTest.php deleted file mode 100644 index 4362e86f7..000000000 --- a/tests/unit_tests/Commands/Upstream/ListCommandTest.php +++ /dev/null @@ -1,199 +0,0 @@ -upstreams->method('getCollectedClass') - ->with() - ->willReturn(Upstream::class); - - $this->command = new ListCommand($this->getConfig()); - $this->command->setSession($this->session); - } - - /** - * Tests the upstream:list command when using the --all option - */ - public function testListAllUpstreams() - { - $filtered = array_values($this->data); - $expected = [ - $this->data['upstream_id2'], - $this->data['upstream_id'], - $this->data['upstream_id4'], - $this->data['upstream_id3'], - ]; - $this->upstreams->expects($this->never()) - ->method('filter'); - $this->upstreams->expects($this->never()) - ->method('filterByName'); - $this->upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listUpstreams(['all' => true,]); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } - - /** - * Tests the upstream:list command with no options - */ - public function testListUpstreams() - { - $filtered = [ - $this->data['upstream_id'], - $this->data['upstream_id2'], - $this->data['upstream_id4'], - ]; - $expected = [ - $this->data['upstream_id4'], - $this->data['upstream_id2'], - $this->data['upstream_id'], - ]; - $this->upstreams->expects($this->once()) - ->method('filter'); - $this->upstreams->expects($this->never()) - ->method('filterByName'); - $this->upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listUpstreams(); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } - - /** - * Tests the upstream:list command when filtering by organization - */ - public function testListOrgUpstreams() - { - $filtered = [ - $this->data['upstream_id'], - $this->data['upstream_id2'], - $this->data['upstream_id4'], - ]; - $expected = [ - $this->data['upstream_id4'], - $this->data['upstream_id2'], - $this->data['upstream_id'], - ]; - $user_org_memberships = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $user_org_membership = $this->getMockBuilder(UserOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $org = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $org->id = 'orgID'; - $upstreams = $this->getMockBuilder(OrganizationUpstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $upstreams->method('getCollectedClass') - ->with() - ->willReturn(OrganizationUpstream::class); - - $this->user->expects($this->once()) - ->method('getOrganizationMemberships') - ->with() - ->willReturn($user_org_memberships); - $user_org_memberships->expects($this->once()) - ->method('get') - ->with($org->id) - ->willReturn($user_org_membership); - $user_org_membership->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($org); - $org->expects($this->once()) - ->method('getUpstreams') - ->with() - ->willReturn($upstreams); - $upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listUpstreams(['org' => $org->id,]); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } - - /** - * Tests the upstream:list command when using the framework filter - */ - public function testListSomeUpstreamsByFramework() - { - $filtered = $expected = [ - $this->data['upstream_id3'], - $this->data['upstream_id4'], - ]; - $this->upstreams->expects($this->exactly(2)) - ->method('filter'); - $this->upstreams->expects($this->never()) - ->method('filterByName'); - $this->upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listUpstreams(['framework' => 'drupal',]); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } - - /** - * Tests the upstream:list command when using the name filter - */ - public function testListSomeUpstreamsByName() - { - $name = 'Upstream'; - $filtered = [ - $this->data['upstream_id'], - $this->data['upstream_id2'], - ]; - $expected = [ - $this->data['upstream_id2'], - $this->data['upstream_id'], - ]; - $this->upstreams->expects($this->once()) - ->method('filter'); - $this->upstreams->expects($this->once()) - ->method('filterByName') - ->with($name); - $this->upstreams->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($filtered); - - $out = $this->command->listUpstreams(compact('name')); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($expected, $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Upstream/Updates/ApplyCommandTest.php b/tests/unit_tests/Commands/Upstream/Updates/ApplyCommandTest.php deleted file mode 100644 index b54212558..000000000 --- a/tests/unit_tests/Commands/Upstream/Updates/ApplyCommandTest.php +++ /dev/null @@ -1,239 +0,0 @@ -command = new ApplyCommand($this->getConfig()); - $this->command->setContainer($this->getContainer()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - $this->expectWorkflowProcessing(); - } - - /** - * Tests the upstream:updates:apply command when there are no updates to apply - */ - public function testApplyUpdatesNone() - { - $this->environment->id = 'dev'; - - $upstream_data = (object)[ - 'remote_head' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'ahead' => 1, - 'update_log' => (object)[], - ]; - - $this->upstream_status->expects($this->once()) - ->method('getUpdates') - ->with() - ->willReturn($upstream_data); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('There are no available updates for this site.') - ); - - $this->environment->expects($this->never()) - ->method('applyUpstreamUpdates'); - - $out = $this->command->applyUpstreamUpdates('123', ['accept-updates' => true, 'updatedb' => true,]); - $this->assertNull($out); - } - - /** - * Tests the upstream:updates:apply command - */ - public function testApplyUpdates() - { - $this->environment->id = 'dev'; - - $upstream_data = (object)[ - 'remote_head' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'ahead' => 1, - 'update_log' => (object)[ - '1bc423f65b3cc527b77d91da5c95eb240d9484f0' => (object)[ - 'gravitar_url' => 'http://pantheon-content.s3.amazonaws.com/blank_user.png', - 'hash' => '1bc423f65b3cc527b77d91da5c95eb240d9484f0', - 'author' => 'Pantheon Automation', - 'labels' => [], - 'datetime' => '2016-06-16T04:21:14', - 'parents' => [ - '45be60a4e82bc42b34bde2b6f02f4d2885a05eed' - ], - 'message' => 'Update to Drupal 7.44. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.44.', - 'email' => 'bot@getpantheon.com', - ], - '2f1c945d01cd03250e2b6668ad77bf24f54a5a56' => (object)[ - 'gravitar_url' => 'http://pantheon-content.s3.amazonaws.com/blank_user.png', - 'hash' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'author' => 'Pantheon Automation', - 'labels' => [], - 'datetime' => '2016-07-07T20:24:52', - 'parents' => [ - '45be60a4e82bc42b34bde2b6f02f4d2885a05eed' - ], - 'message' => 'Update to Drupal 7.50. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.50', - 'email' => 'bot@getpantheon.com', - ], - ], - ]; - $this->upstream_status->method('getUpdates') - ->willReturn($upstream_data); - - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $workflow->expects($this->any()) - ->method('getMessage') - ->willReturn('Applied upstream updates to "dev"'); - - $this->environment->expects($this->once()) - ->method('applyUpstreamUpdates') - ->with($this->equalTo(true), $this->equalTo(true)) - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with('name') - ->willReturn('my-site'); - - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{prefix} to the {env} environment of {site_id}...'), - $this->equalTo(['prefix' => 'Applying 2 upstream update(s)', 'env' => 'dev', 'site_id' => 'my-site']) - ); - - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Applied upstream updates to "dev"') - ); - - $out = $this->command->applyUpstreamUpdates('my-site', ['accept-upstream' => true, 'updatedb' => true,]); - $this->assertNull($out); - } - - /** - * Tests the upstream:updates:apply command when there are no updates to apply - */ - public function testApplyUpdatesTestOrLive() - { - $this->environment->id = 'live'; - - $this->upstream->expects($this->never()) - ->method('getUpdates'); - $this->logger->expects($this->never()) - ->method('log'); - $this->environment->expects($this->never()) - ->method('applyUpstreamUpdates'); - - $this->setExpectedException( - TerminusException::class, - "Upstream updates cannot be applied to the {$this->environment->id} environment" - ); - - $out = $this->command->applyUpstreamUpdates('123', ['accept-updates' => true, 'updatedb' => true,]); - $this->assertNull($out); - } - - /** - * Tests the upstream:updates:apply command when there are only composer updates to apply - */ - public function testApplyUpdatesComposerUpdatesOnly() - { - $this->environment->id = 'dev'; - $this->environment->method('isBuildStepEnabled') - ->willReturn(true); - - $upstream_data = (object)[ - 'remote_head' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'ahead' => 1, - 'update_log' => (object)[], - ]; - $this->upstream_status->method('getUpdates') - ->willReturn($upstream_data); - - $composer_data = (object)[ - 'updated_dependencies' => [ - 0 => (object)[ - 'name' => 'pantheon-systems/wordpress-composer', - 'version' => '5.5.1', - 'type' => 'update', - 'prior_version' => '5.5', - ], - 1 => (object)[ - 'name' => 'pantheon-systems/quicksilver-pushback', - 'version' => '2.0.2', - 'type' => 'update', - 'prior_version' => '2.0.1', - ], - ] - ]; - $this->upstream_status->method('getComposerUpdates') - ->willReturn($composer_data); - - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow->expects($this->any()) - ->method('getMessage') - ->willReturn('Applied upstream updates to "dev"'); - $this->environment->expects($this->once()) - ->method('applyUpstreamUpdates') - ->with($this->equalTo(true), $this->equalTo(true)) - ->willReturn($workflow); - $this->site->expects($this->once()) - ->method('get') - ->with('name') - ->willReturn('my-composer-site'); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('{prefix} to the {env} environment of {site_id}...'), - $this->equalTo([ - 'prefix' => 'Applying 0 upstream update(s) and any composer update(s)', - 'env' => 'dev', - 'site_id' => 'my-composer-site', - ]) - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Applied upstream updates to "dev"') - ); - $out = $this->command->applyUpstreamUpdates('my-composer-site', [ - 'accept-upstream' => true, - 'updatedb' => true, - ]); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Upstream/Updates/ListCommandTest.php b/tests/unit_tests/Commands/Upstream/Updates/ListCommandTest.php deleted file mode 100644 index 4ef5e31b7..000000000 --- a/tests/unit_tests/Commands/Upstream/Updates/ListCommandTest.php +++ /dev/null @@ -1,130 +0,0 @@ -command = new ListCommand($this->getConfig()); - $this->command->setSites($this->sites); - $this->command->setLogger($this->logger); - } - - /** - * Tests the upstream:updates:list command when there are no updates to apply - */ - public function testListUpstreamsEmpty() - { - $upstream_data = (object)[ - 'remote_head' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'ahead' => 1, - 'update_log' => (object)[], - ]; - $this->upstream_status->expects($this->once()) - ->method('getUpdates') - ->with() - ->willReturn($upstream_data); - - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('There are no available updates for this site.') - ); - - $out = $this->command->listUpstreamUpdates('123'); - $this->assertEquals([], $out->getArrayCopy()); - } - - /** - * Tests the upstream:updates:list command - */ - public function testListUpstreams() - { - $upstream_data = (object)[ - 'remote_head' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'ahead' => 1, - 'update_log' => (object)[ - '1bc423f65b3cc527b77d91da5c95eb240d9484f0' => (object)[ - 'gravitar_url' => 'http://pantheon-content.s3.amazonaws.com/blank_user.png', - 'hash' => '1bc423f65b3cc527b77d91da5c95eb240d9484f0', - 'author' => 'Pantheon Automation', - 'labels' => [], - 'datetime' => '2016-06-16T04:21:14', - 'parents' => [ - '45be60a4e82bc42b34bde2b6f02f4d2885a05eed' - ], - 'message' => 'Update to Drupal 7.44. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.44.', - 'email' => 'bot@getpantheon.com', - ], - '2f1c945d01cd03250e2b6668ad77bf24f54a5a56' => (object)[ - 'gravitar_url' => 'http://pantheon-content.s3.amazonaws.com/blank_user.png', - 'hash' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'author' => 'Pantheon Automation', - 'labels' => [], - 'datetime' => '2016-07-07T20:24:52', - 'parents' => [ - '45be60a4e82bc42b34bde2b6f02f4d2885a05eed' - ], - 'message' => 'Update to Drupal 7.50. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.50', - 'email' => 'bot@getpantheon.com', - ], - ], - ]; - $this->upstream_status->method('getUpdates') - ->willReturn($upstream_data); - - $out = $this->command->listUpstreamUpdates('123'); - $result = [ - [ - 'hash' => '2f1c945d01cd03250e2b6668ad77bf24f54a5a56', - 'datetime' => '2016-07-07T20:24:52', - 'message' => 'Update to Drupal 7.50. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.50', - 'author' => 'Pantheon Automation', - ], - [ - 'hash' => '1bc423f65b3cc527b77d91da5c95eb240d9484f0', - 'datetime' => '2016-06-16T04:21:14', - 'message' => 'Update to Drupal 7.44. For more information, see ' . - 'https://www.drupal.org/project/drupal/releases/7.44.', - 'author' => 'Pantheon Automation', - ], - ]; - $this->assertEquals($result, $out->getArrayCopy()); - } - - /** - * Tests the upstream:updates:list command when getUpdates returns empty (i.e. erred) - */ - public function testListUpstreamsErred() - { - $this->upstream->method('getUpdates') - ->willReturn([]); - $this->logger->expects($this->never()) - ->method('log'); - $this->setExpectedException( - TerminusException::class, - 'There was a problem checking your upstream status. Please try again.' - ); - - $out = $this->command->listUpstreamUpdates('123'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Commands/Upstream/Updates/StatusCommandTest.php b/tests/unit_tests/Commands/Upstream/Updates/StatusCommandTest.php deleted file mode 100644 index c07648749..000000000 --- a/tests/unit_tests/Commands/Upstream/Updates/StatusCommandTest.php +++ /dev/null @@ -1,40 +0,0 @@ -command = new StatusCommand($this->getConfig()); - $this->command->setSites($this->sites); - } - - /** - * Tests the StatusCommand::status($site_env) function - */ - public function testStatus() - { - $status = 'some status'; - - $this->upstream_status->expects($this->once()) - ->method('getStatus') - ->with() - ->willReturn($status); - - $out = $this->command->status('site.env'); - $this->assertEquals($status, $out); - } -} diff --git a/tests/unit_tests/Commands/Upstream/Updates/UpdatesCommandTest.php b/tests/unit_tests/Commands/Upstream/Updates/UpdatesCommandTest.php deleted file mode 100644 index c245ad487..000000000 --- a/tests/unit_tests/Commands/Upstream/Updates/UpdatesCommandTest.php +++ /dev/null @@ -1,45 +0,0 @@ -upstream = $this->getMockBuilder(Upstream::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream_status = $this->getMockBuilder(UpstreamStatus::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->environment->method('getUpstreamStatus') - ->with() - ->willReturn($this->upstream_status); - $this->site->method('getUpstream') - ->with() - ->willReturn($this->upstream); - } -} diff --git a/tests/unit_tests/Commands/Upstream/UpstreamCommandTest.php b/tests/unit_tests/Commands/Upstream/UpstreamCommandTest.php deleted file mode 100644 index 3fff28211..000000000 --- a/tests/unit_tests/Commands/Upstream/UpstreamCommandTest.php +++ /dev/null @@ -1,110 +0,0 @@ -data = [ - 'upstream_id' => [ - 'framework' => 'backdrop', - 'id' => 'upstream_id', - 'label' => 'Upstream Name', - 'type' => 'core', - 'organization_id' => '', - ], - 'upstream_id2' => [ - 'framework' => 'wordpress', - 'id' => 'upstream_id2', - 'label' => 'Name Upstream', - 'type' => 'core', - 'organization_id' => '', - ], - 'upstream_id3' => [ - 'framework' => 'drupal', - 'id' => 'upstream_id3', - 'label' => 'Something Else', - 'type' => 'project', - 'organization_id' => '', - ], - 'upstream_id4' => [ - 'framework' => 'drupal', - 'id' => 'upstream_id4', - 'label' => 'Not even', - 'type' => 'custom', - 'organization_id' => '', - ], - ]; - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstreams = $this->getMockBuilder(Upstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream = $this->getMockBuilder(Upstream::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($this->user); - $this->user->method('getOrganizations') - ->with() - ->willReturn([$this->organization,]); - $this->user->expects($this->any()) - ->method('getUpstreams') - ->with() - ->willReturn($this->upstreams); - $this->upstream->expects($this->any()) - ->method('serialize') - ->with() - ->willReturn($this->data); - } -} diff --git a/tests/unit_tests/Commands/Workflow/Info/InfoCommandTest.php b/tests/unit_tests/Commands/Workflow/Info/InfoCommandTest.php deleted file mode 100644 index 4df102bbd..000000000 --- a/tests/unit_tests/Commands/Workflow/Info/InfoCommandTest.php +++ /dev/null @@ -1,27 +0,0 @@ -workflows->expects($this->once()) - ->method('setPaging') - ->with(false) - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($this->workflows); - } -} diff --git a/tests/unit_tests/Commands/Workflow/Info/LogsCommandTest.php b/tests/unit_tests/Commands/Workflow/Info/LogsCommandTest.php deleted file mode 100644 index 5a58f6c18..000000000 --- a/tests/unit_tests/Commands/Workflow/Info/LogsCommandTest.php +++ /dev/null @@ -1,183 +0,0 @@ -operation = $this->getMockBuilder(WorkflowOperation::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site_name = 'Site Name'; - - $this->workflow->expects($this->once()) - ->method('getOperations') - ->with() - ->willReturn($this->operations); - - $this->command = new LogsCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the workflow:info:logs command with the latest workflow - */ - public function testLatestLogsCommand() - { - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->workflows->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->operations->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->operation,]); - $this->operation->expects($this->at(0)) - ->method('get') - ->with('log_output') - ->willReturn(true); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Showing latest workflow on {site}.'), - $this->equalTo(['site' => $this->site_name,]) - ); - $this->operation->expects($this->at(1)) - ->method('__toString') - ->with() - ->willReturn($this->expected_logs); - - $out = $this->command->logs($this->site_name); - $this->assertEquals($this->expected_logs, $out); - } - - /** - * Tests the workflow:info:logs command with workflow ID - */ - public function testWorkflowIDLogsCommand() - { - $this->workflow->id = '12345'; - - $this->site->expects($this->never()) - ->method('getName'); - $this->workflows->expects($this->once()) - ->method('get') - ->with($this->equalTo($this->workflow->id)) - ->willReturn($this->workflow); - $this->operations->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->operation,]); - $this->operation->expects($this->at(0)) - ->method('get') - ->with('log_output') - ->willReturn(true); - $this->operation->expects($this->at(1)) - ->method('__toString') - ->with() - ->willReturn($this->expected_logs); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->logs($this->site_name, ['id' => $this->workflow->id,]); - $this->assertEquals($this->expected_logs, $out); - } - - /** - * Tests the workflow:info:logs command when the workflow has no operations - */ - public function testLatestNoOperations() - { - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->workflows->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->operations->expects($this->once()) - ->method('all') - ->with() - ->willReturn([]); - $this->operation->expects($this->never()) - ->method('has'); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Showing latest workflow on {site}.'), - $this->equalTo(['site' => $this->site_name,]) - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Workflow does not contain any operations.') - ); - - $out = $this->command->logs($this->site_name); - $this->assertEmpty($out); - } - - /** - * Tests the workflow:info:logs command when the workflow operations have no logs - */ - public function testLatestNoLogs() - { - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->workflows->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->operations->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->operation,]); - $this->operation->expects($this->at(0)) - ->method('get') - ->with('log_output') - ->willReturn(false); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Workflow operations did not contain any logs.') - ); - - $out = $this->command->logs($this->site_name); - $this->assertEmpty($out); - } -} diff --git a/tests/unit_tests/Commands/Workflow/Info/OperationsCommandTest.php b/tests/unit_tests/Commands/Workflow/Info/OperationsCommandTest.php deleted file mode 100644 index c6669cc64..000000000 --- a/tests/unit_tests/Commands/Workflow/Info/OperationsCommandTest.php +++ /dev/null @@ -1,140 +0,0 @@ -site_name = 'Site Name'; - - $this->workflow->expects($this->once()) - ->method('getOperations') - ->with() - ->willReturn($this->operations); - - $this->command = new OperationsCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the workflow:info:operations command with the latest workflow - */ - public function testLatestOperationsCommand() - { - $op_data = [ - ['id' => '12345', 'log_output' => 'The mock operation log output.', 'description' => 'Mock operation'], - ['id' => '67890', 'log_output' => 'The other mock op log output.', 'description' => 'Mock operation 2'], - ]; - - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->workflows->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->operations->expects($this->any()) - ->method('serialize') - ->willReturn($op_data); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Showing latest workflow on {site}.'), - $this->equalTo(['site' => $this->site_name,]) - ); - - $out = $this->command->operations($this->site_name); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($op_data, $out->getArrayCopy()); - } - - /** - * Tests the workflow:info:operations command with workflow ID - */ - public function testWorkflowIDOperationsCommand() - { - $workflow_id = 'workflow id'; - $op_data = [ - ['id' => '12345', 'log_output' => 'The mock operation log output.', 'description' => 'Mock operation'], - ['id' => '67890', 'log_output' => 'The other mock op log output.', 'description' => 'Mock operation 2'], - ]; - - $this->site->expects($this->never()) - ->method('getName'); - $this->workflows->expects($this->once()) - ->method('get') - ->with($this->equalTo($workflow_id)) - ->willReturn($this->workflow); - $this->operations->expects($this->any()) - ->method('serialize') - ->willReturn($op_data); - $this->logger->expects($this->never()) - ->method('log'); - - $out = $this->command->operations($this->site_name, ['id' => $workflow_id,]); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals($op_data, $out->getArrayCopy()); - } - - /** - * Tests the workflow:info:operations command when the workflow does not contain any operations - */ - public function testWorkflowNoOperations() - { - $op_data = []; - - $this->site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->site_name); - $this->workflows->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->workflow->expects($this->once()) - ->method('getOperations') - ->willReturn($this->operations); - $this->operations->expects($this->any()) - ->method('serialize') - ->willReturn($op_data); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Showing latest workflow on {site}.'), - $this->equalTo(['site' => $this->site_name,]) - ); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Workflow does not contain any operations.') - ); - - $out = $this->command->operations($this->site_name); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEmpty($out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Workflow/Info/StatusCommandTest.php b/tests/unit_tests/Commands/Workflow/Info/StatusCommandTest.php deleted file mode 100644 index 22a66bdc6..000000000 --- a/tests/unit_tests/Commands/Workflow/Info/StatusCommandTest.php +++ /dev/null @@ -1,68 +0,0 @@ -data = ['id' => '12345', 'details' => 'test',]; - - $this->command = new StatusCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - } - - /** - * Tests the workflow:info:status command with the latest workflow - */ - public function testLatestStatusCommand() - { - $this->workflows->expects($this->once()) - ->method('all') - ->willReturn([$this->workflow,]); - $this->workflow->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->data); - - $out = $this->command->status('mysite', ['id' => null,]); - $this->assertInstanceOf(PropertyList::class, $out); - } - - /** - * Tests the workflow:info:status command with workflow ID - */ - public function testWorkflowIDStatusCommand() - { - $this->workflows->expects($this->once()) - ->method('get') - ->with($this->equalTo('12345')) - ->willReturn($this->workflow); - $this->workflow->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->data); - - $out = $this->command->status('mysite', ['id' => '12345',]); - $this->assertInstanceOf(PropertyList::class, $out); - } -} diff --git a/tests/unit_tests/Commands/Workflow/ListCommandTest.php b/tests/unit_tests/Commands/Workflow/ListCommandTest.php deleted file mode 100644 index b6756a091..000000000 --- a/tests/unit_tests/Commands/Workflow/ListCommandTest.php +++ /dev/null @@ -1,96 +0,0 @@ -site_name = 'site_name'; - - $this->command = new ListCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->workflows->expects($this->once()) - ->method('getCollectedClass') - ->with() - ->willReturn(Workflow::class); - - $this->site->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($this->site_name); - } - - /** - * Tests the workflow:list command - */ - public function testListCommand() - { - $this->workflows->expects($this->once()) - ->method('setPaging') - ->with(false) - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('serialize') - ->willReturn(['12345' => ['id' => '12345', 'details' => 'test',],]); - - $out = $this->command->wfList($this->site_name); - $this->assertInstanceOf(RowsOfFields::class, $out); - foreach ($out as $w) { - $this->assertEquals($w['id'], '12345'); - $this->assertEquals($w['details'], 'test'); - } - } - - /** - * Tests the workflow:list command when no workflows have been run - */ - public function testListCommandEmpty() - { - $this->workflows->expects($this->once()) - ->method('setPaging') - ->with(false) - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('fetch') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn([]); - $this->logger->expects($this->once()) - ->method('log') - ->with( - $this->equalTo('warning'), - $this->equalTo('No workflows have been run on {site}.'), - $this->equalTo(['site' => $this->site_name,]) - ); - - $out = $this->command->wfList($this->site_name); - $this->assertInstanceOf(RowsOfFields::class, $out); - $this->assertEquals([], $out->getArrayCopy()); - } -} diff --git a/tests/unit_tests/Commands/Workflow/TerminusCommandTest.php b/tests/unit_tests/Commands/Workflow/TerminusCommandTest.php deleted file mode 100644 index 6a77f93f0..000000000 --- a/tests/unit_tests/Commands/Workflow/TerminusCommandTest.php +++ /dev/null @@ -1,43 +0,0 @@ -output = $this->getMockBuilder(OutputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command = new DummyCommand($this->getConfig()); - $this->command->setOutput($this->output); - $this->command->setInput($this->input); - } - - /** - * Tests the io function - */ - public function testIO() - { - $this->output->expects($this->once()) - ->method('getFormatter') - ->willReturn(new OutputFormatter()); - $style = $this->command->dummyIO(); - $this->assertInstanceOf(TerminusStyle::class, $style); - } -} diff --git a/tests/unit_tests/Commands/Workflow/WatchCommandTest.php b/tests/unit_tests/Commands/Workflow/WatchCommandTest.php deleted file mode 100644 index 747a3498e..000000000 --- a/tests/unit_tests/Commands/Workflow/WatchCommandTest.php +++ /dev/null @@ -1,257 +0,0 @@ -sites = $this->getMockBuilder(Sites::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->setMethods( - [ - 'get', - 'wasFinishedBefore', - 'wasCreatedBefore', - 'fetchWithLogs', - 'operations', - ] - ) - ->disableOriginalConstructor() - ->getMock(); - $this->operation = $this->getMockBuilder(WorkflowOperation::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->sites->expects($this->once()) - ->method('get') - ->willReturn($this->site); - $this->config->expects($this->exactly(2)) - ->method('get') - ->with($this->equalTo('date_format')) - ->willReturn('Y-m-d H:i:s'); - $this->logger->expects($this->at(0)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Watching workflows...') - ); - $this->site->expects($this->any()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->any()) - ->method('fetchWithOperations') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->any()) - ->method('all') - ->with() - ->willReturn([$this->workflow,]); - $this->workflows->expects($this->any()) - ->method('lastCreatedAt') - ->with() - ->willReturn(self::ARBITRARY_TIMESTAMP); - $this->workflows->expects($this->any()) - ->method('lastFinishedAt') - ->with() - ->willReturn(self::ARBITRARY_TIMESTAMP); - - $this->command = new WatchCommand($this->getConfig()); - $this->command->setLogger($this->logger); - $this->command->setSites($this->sites); - $this->command->setConfig($this->config); - } - - /** - * Tests the workflow:list command - */ - public function testWatch() - { - $this->environment->id = 'dev'; - $this->workflow->id = 'workflow id'; - $settings = [ - 'description' => 'description', - 'started_at' => self::ARBITRARY_TIMESTAMP, - 'finished_at' => self::ARBITRARY_TIMESTAMP, - ]; - $this->startedNoticeExpectations($settings); - $this->finishedNoticeExpectations($settings); - $this->operationLogsExpectations($settings); - - $out = $this->command->watch('site name', ['checks' => 0,]); - $this->assertNull($out); - } - - /** - * Tests the workflow:list command's emitting of the workflow-started notice - * - * @param array $settings - */ - protected function startedNoticeExpectations(array $settings = []) - { - $description = $settings['description']; - $started_at = $settings['started_at']; - - $this->workflow->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('created_at')) - ->willReturn($started_at + 100); - $this->workflow->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('description')) - ->willReturn($description); - $this->workflow->expects($this->at(2)) - ->method('get') - ->with($this->equalTo('environment')) - ->willReturn($this->environment->id); - $this->workflow->expects($this->at(3)) - ->method('get') - ->with($this->equalTo('started_at')) - ->willReturn($started_at); - $this->logger->expects($this->at(1)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo('Started {id} {description} ({env}) at {time}'), - $this->equalTo([ - 'id' => $this->workflow->id, - 'description' => $description, - 'env' => $this->environment->id, - 'time' => '1969-07-21 02:26:00', - ]) - ); - } - - /** - * Tests the workflow:list command's emitting of the workflow-finished - * notice - * - * @param array $settings - */ - protected function finishedNoticeExpectations(array $settings = []) - { - $description = $settings['description']; - $finished_at = $settings['finished_at']; - - $this->workflow->expects($this->at(4)) - ->method('get') - ->with($this->equalTo('finished_at')) - ->willReturn($finished_at + 100); - $this->workflow->expects($this->at(5)) - ->method('get') - ->with($this->equalTo('description')) - ->willReturn($description); - $this->workflow->expects($this->at(6)) - ->method('get') - ->with($this->equalTo('environment')) - ->willReturn($this->environment->id); - $this->workflow->expects($this->at(7)) - ->method('get') - ->with($this->equalTo('finished_at')) - ->willReturn($finished_at); - $this->logger->expects($this->at(2)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo( - 'Finished workflow {id} {description} ({env}) at {time}' - ), - $this->equalTo([ - 'id' => $this->workflow->id, - 'description' => $description, - 'env' => $this->environment->id, - 'time' => '1969-07-21 02:26:00', - ]) - ); - } - - /** - * Tests the workflow:list command's emitting of workflow operation notices - * - * @param array $settings - */ - protected function operationLogsExpectations(array $settings = []) - { - $description = $settings['description']; - - $this->workflow->expects($this->at(8)) - ->method('get') - ->with($this->equalTo('has_operation_log_output')) - ->willReturn(true); - $this->workflow->expects($this->once()) - ->method('fetchWithLogs') - ->with() - ->willReturn($this->workflow); - $this->workflow->expects($this->once()) - ->method('operations') - ->with() - ->willReturn([$this->operation,]); - $this->operation->expects($this->once()) - ->method('has') - ->with($this->equalTo('log_output')) - ->willReturn(true); - $this->operation->expects($this->any()) - ->method('__toString') - ->with() - ->willReturn($description); - $this->logger->expects($this->at(3)) - ->method('log') - ->with( - $this->equalTo('notice'), - $this->equalTo($description) - ); - } -} diff --git a/tests/unit_tests/Commands/Workflow/WorkflowCommandTest.php b/tests/unit_tests/Commands/Workflow/WorkflowCommandTest.php deleted file mode 100644 index 07b852543..000000000 --- a/tests/unit_tests/Commands/Workflow/WorkflowCommandTest.php +++ /dev/null @@ -1,63 +0,0 @@ -expected_logs = <<<'EOT' - ------- Mock operation ------ -The mock operation log output. - ------- Mock operation ------ -The mock operation log output. - -EOT; - $this->operations = $this->getMockBuilder(WorkflowOperations::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->workflow->method('getOperations')->willReturn($this->operations); - $this->site->method('getWorkflows')->willReturn($this->workflows); - } -} diff --git a/tests/unit_tests/Commands/WorkflowProgressTrait.php b/tests/unit_tests/Commands/WorkflowProgressTrait.php deleted file mode 100644 index 9eb61a7d2..000000000 --- a/tests/unit_tests/Commands/WorkflowProgressTrait.php +++ /dev/null @@ -1,128 +0,0 @@ -config->method('get') - ->with('http_retry_delay_ms', 100) - ->willReturn(100); - } - - /** - * Sets the test up to expect the progress bar being retrieved from the mock container object - */ - public function expectContainerRetrieval() - { - $this->container->method('get') - ->with(WorkflowProgressBar::class) - ->willReturn($this->getProgressBar()); - } - - /** - * Sets the test up to expect interactivity - */ - public function expectInteractiveInput() - { - $this->input->method('isInteractive') - ->with() - ->willReturn(true); - } - - /** - * Sets the test up to expect non-interactivity - */ - public function expectNonInteractiveInput() - { - $this->input->method('isInteractive') - ->with() - ->willReturn(false); - } - - /** - * Sets the test up to expect the progress bar cycling - */ - public function expectProgressBarCycling() - { - $this->getProgressBar()->method('cycle') - ->with() - ->willReturn(null); - } - - /** - * Sets the test up to expect the workflow to fetch - */ - public function expectWorkflowFetching() - { - $this->workflow->method('fetch') - ->with() - ->willReturn($this->workflow); - } - - /** - * Sets the test up to expect the workflow to say it is finished - */ - public function expectWorkflowFinishing() - { - $this->workflow->method('isFinished') - ->with() - ->willReturn(true); - } - - /** - * Sets the test up to expect the usual set of processes involved with workflow cycling - */ - public function expectWorkflowProcessing() - { - $this->expectInteractiveInput(); - $this->expectContainerRetrieval(); - $this->expectProgressBarCycling(); - } - - /** - * Sets the test up to expect the usual set of processes involved with workflow cycling - */ - public function expectNonInteractiveWorkflowProcessing() - { - $this->expectNonInteractiveInput(); - $this->expectConfigHTTPRetry(); - $this->expectWorkflowFetching(); - $this->expectWorkflowFinishing(); - } - - /** - * Lazy instantiator of the progress bar mock object - * - * @return WorkflowProgressBar - */ - public function getProgressBar() - { - if (empty($this->progress_bar)) { - $this->progress_bar = $this->getMockBuilder(WorkflowProgressBar::class) - ->disableOriginalConstructor() - ->getMock(); - } - return $this->progress_bar; - } -} diff --git a/tests/unit_tests/Config/DefaultsConfigTest.php b/tests/unit_tests/Config/DefaultsConfigTest.php deleted file mode 100644 index 35b77340e..000000000 --- a/tests/unit_tests/Config/DefaultsConfigTest.php +++ /dev/null @@ -1,98 +0,0 @@ -config = new DefaultsConfig(); - } - - /** - * Tests the getHomeDir function when using HOME - */ - public function testGetHomeDirHome() - { - $home = getenv('HOME'); - if (!$home) { - $home = 'home'; - putenv("HOME=$home"); - } - $config = new DefaultsConfig(); - $this->assertEquals($home, $config->get('user_home')); - } - - /** - * Tests the getHomeDir function's functionality when using the HOMEPATH - */ - public function testGetHomeDirHomepath() - { - $homepath = 'homepath'; - putenv("HOME="); - putenv("HOMEPATH=$homepath"); - putenv("MSYSTEM=''"); - $config = new DefaultsConfig(); - $this->assertEquals($homepath, $config->get('user_home')); - } - - /** - * Tests the getHomeDir function's functionality when the system is 'MING' - */ - public function testGetHomeDirMing() - { - putenv("HOME="); - putenv("HOMEPATH=homepath"); - putenv("MSYSTEM=MING"); - $config = new DefaultsConfig(); - $this->assertEmpty($config->get('user_home')); - } - - public function testGetPhpAndOSInfo() - { - $this->assertEquals(PHP_VERSION, $this->config->get('php_version')); - $this->assertEquals(get_cfg_var('cfg_file_path'), $this->config->get('php_ini')); - $this->assertEquals(PHP_BINARY, $this->config->get('php')); - $this->assertEquals(php_uname('v'), $this->config->get('os_version')); - } - - public function testGetSourceName() - { - $this->assertInternalType('string', $this->config->getSourceName()); - } - - /** - * Tests the result of getTerminusRoot function - */ - public function testGetTerminusRoot() - { - $this->assertEquals(getcwd(), $this->config->get('root')); - } - - /** - * Tests the result of the getTerminusRoot function when Terminus cannot find its root - */ - public function testGetTerminusRootInvalid() - { - $config = new DummyConfigClass(); - $this->setExpectedException(TerminusException::class, 'Could not locate root to set TERMINUS_ROOT.'); - $this->assertNull($config->runGetTerminusRoot('/')); - } -} diff --git a/tests/unit_tests/Config/DotEnvConfigTest.php b/tests/unit_tests/Config/DotEnvConfigTest.php deleted file mode 100644 index 3a5a6ef79..000000000 --- a/tests/unit_tests/Config/DotEnvConfigTest.php +++ /dev/null @@ -1,32 +0,0 @@ -config = new DotEnvConfig($tmp); - $this->assertEquals('abc', $this->config->get('some_var')); - $this->assertEquals('123', $this->config->get('another_var')); - $this->assertEquals($tmp . '/' . '.env', $this->config->getSource('abc')); - - unlink($tmp . '/' . '.env'); - rmdir($tmp); - } -} diff --git a/tests/unit_tests/Config/DummyConfigClass.php b/tests/unit_tests/Config/DummyConfigClass.php deleted file mode 100644 index 92fa43031..000000000 --- a/tests/unit_tests/Config/DummyConfigClass.php +++ /dev/null @@ -1,30 +0,0 @@ -setSourceName($source); - } - - /** - * Exposes the getTerminusRoot function for testing purposes - * - * @param string $dir - * @return string - */ - public function runGetTerminusRoot($dir = null) - { - return $this->getTerminusRoot($dir); - } -} diff --git a/tests/unit_tests/Config/EnvConfigTest.php b/tests/unit_tests/Config/EnvConfigTest.php deleted file mode 100644 index 19f0d8f56..000000000 --- a/tests/unit_tests/Config/EnvConfigTest.php +++ /dev/null @@ -1,21 +0,0 @@ -config = new EnvConfig(); - $this->assertEquals('abc', $this->config->get('some_var')); - $this->assertEquals('123', $this->config->get('another_var')); - $this->assertEmpty($this->config->get('NOT_RELATED')); - $this->assertEquals('Environment Variable', $this->config->getSource('Environment Variable')); - } -} diff --git a/tests/unit_tests/Config/TerminusConfigTest.php b/tests/unit_tests/Config/TerminusConfigTest.php deleted file mode 100644 index 4958e5887..000000000 --- a/tests/unit_tests/Config/TerminusConfigTest.php +++ /dev/null @@ -1,82 +0,0 @@ -config = new TerminusConfig(); - } - - public function testExtend() - { - $a = new DummyConfigClass(); - $b = new DummyConfigClass(); - - $a->runSetSourceName('Source A'); - $b->runSetSourceName('Source B'); - - $a->combine(['foo' => 'bar', 'abc' => 123]); - $b->combine(['baz' => 'bar', 'abc' => 321]); - - $a->extend($b); - - $this->assertEquals('bar', $a->get('foo')); - $this->assertEquals('bar', $a->get('baz')); - $this->assertEquals(321, $a->get('abc')); - $this->assertEquals('Source A', $a->getSource('foo')); - $this->assertEquals('Source B', $a->getSource('baz')); - $this->assertEquals('Source B', $a->getSource('abc')); - } - - public function testFormatDatetime() - { - $this->config->set('TERMINUS_DATE_FORMAT', 'Y-m-d'); - $unix_datetime = '1163004334'; - $expected_datetime = '2006-11-08'; - $this->assertEquals($expected_datetime, $this->config->formatDatetime($unix_datetime)); - } - - public function testFromArray() - { - $this->config->combine(['foo' => 'bar', 'abc' => '123']); - $this->assertEquals('bar', $this->config->get('foo')); - $this->assertEquals('123', $this->config->get('abc')); - } - - public function testGet() - { - $this->config->set('TERMINUS_SOME_VAR', 'abc'); - $this->config->set('TERMINUS_ANOTHER_VAR', '[[ TERMINUS_SOME_VAR ]]/123'); - $this->config->set('third_var', '[[ TERMINUS_ANOTHER_VAR ]]\321'); - $this->assertEquals('abc' . DIRECTORY_SEPARATOR . '123', $this->config->get('another_var')); - $this->assertEquals( - 'abc' . DIRECTORY_SEPARATOR . '123' . DIRECTORY_SEPARATOR . '321', - $this->config->get('third_var') - ); - } - - public function testKeys() - { - $this->config->combine(['foo' => 'bar', 'abc' => '123']); - $this->assertEquals(['foo', 'abc'], $this->config->keys()); - } - - public function testSet() - { - $this->config->set('TERMINUS_SOME_VAR', 'abc'); - $this->config->set('TERMINUS_ANOTHER_VAR', '123'); - $this->config->set('third_var', '321'); - $this->assertEquals('abc', $this->config->get('some_var')); - $this->assertEquals('123', $this->config->get('another_var')); - $this->assertEquals('321', $this->config->get('third_var')); - } -} diff --git a/tests/unit_tests/Config/YamlConfigTest.php b/tests/unit_tests/Config/YamlConfigTest.php deleted file mode 100644 index ea78eb9ae..000000000 --- a/tests/unit_tests/Config/YamlConfigTest.php +++ /dev/null @@ -1,29 +0,0 @@ -config = new YamlConfig($tmp); - $this->assertEquals('abc', $this->config->get('some_var')); - $this->assertEquals('123', $this->config->get('another_var')); - $this->assertEquals($tmp, $this->config->getSource('abc')); - - unlink($tmp); - } -} diff --git a/tests/unit_tests/DataStore/FileStoreTest.php b/tests/unit_tests/DataStore/FileStoreTest.php deleted file mode 100644 index 4ac214c54..000000000 --- a/tests/unit_tests/DataStore/FileStoreTest.php +++ /dev/null @@ -1,74 +0,0 @@ -tmp = tempnam(sys_get_temp_dir(), 'terminus_test_'); - unlink($this->tmp); - - $this->filestore = new FileStore($this->tmp); - } - - public function tearDown() - { - parent::tearDown(); - - if (file_exists($this->tmp)) { - $files = new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator($this->tmp, \RecursiveDirectoryIterator::SKIP_DOTS), - \RecursiveIteratorIterator::CHILD_FIRST - ); - - foreach ($files as $fileinfo) { - $rm = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); - $rm($fileinfo->getRealPath()); - } - - rmdir($this->tmp); - } - } - - public function testGetSet() - { - // Test the empty state. The directory should not exist yet. - $this->assertEquals([], $this->filestore->keys()); - - $this->assertFalse($this->filestore->has('foo')); - $this->assertFalse($this->filestore->has('bar')); - - // This should create the directory and - $this->filestore->set('foo', '123'); - $this->filestore->set('bar', '456'); - - // Create a new object to ensure that the previous one actually persisted the data. - $this->filestore = new FileStore($this->tmp); - - $this->assertTrue($this->filestore->has('foo')); - $this->assertTrue($this->filestore->has('bar')); - - $this->assertEquals('123', $this->filestore->get('foo')); - $this->assertEquals('456', $this->filestore->get('bar')); - - // keys() makes no guarantee about the order of keys returned or their indices in the array. - $actual = $this->filestore->keys(); - sort($actual); - $this->assertEquals(['bar', 'foo'], $actual); - - $this->filestore->remove('foo'); - $this->assertFalse($this->filestore->has('foo')); - $this->assertEquals(['bar'], array_values($this->filestore->keys())); - - // Key cleaning - $this->filestore->set('foo/bar&baz!bop', '123'); - $this->assertTrue($this->filestore->has('foo/bar&baz!bop')); - $this->assertEquals('123', $this->filestore->get('foo/bar&baz!bop')); - } -} diff --git a/tests/unit_tests/Exceptions/TerminusExceptionTest.php b/tests/unit_tests/Exceptions/TerminusExceptionTest.php deleted file mode 100644 index c83365e07..000000000 --- a/tests/unit_tests/Exceptions/TerminusExceptionTest.php +++ /dev/null @@ -1,66 +0,0 @@ -getRawMessage(); - $this->assertEquals($out, $raw_message); - } - - /** - * Tests the getReplacements function - */ - public function testGetReplacements() - { - $replacements = ['key' => 'value',]; - $exception = new TerminusException(null, $replacements); - - $out = $exception->getReplacements(); - $this->assertEquals($out, $replacements); - } - - /** - * Indirectly tests the interpolateString function - */ - public function testInterpolateString() - { - $raw_message = '{key} is a key'; - $replacements = ['key' => 'value',]; - $expected_message = 'value is a key'; - $exception = new TerminusException($raw_message, $replacements); - - $out = $exception->getMessage(); - $this->assertEquals($out, $expected_message); - } - - /** - * Indirectly tests the interpolateString function when the message is an array - */ - public function testInterpolateStringWithArray() - { - $raw_message = ['{key} is a', 'key']; - $replacements = ['key' => 'value',]; - $expected_message = 'value is a' . PHP_EOL . 'key'; - $exception = new TerminusException($raw_message, $replacements); - - $out = $exception->getMessage(); - $this->assertEquals($out, $expected_message); - } -} diff --git a/tests/unit_tests/Friends/Domain/SingularDummyClass.php b/tests/unit_tests/Friends/Domain/SingularDummyClass.php deleted file mode 100644 index a578a84a7..000000000 --- a/tests/unit_tests/Friends/Domain/SingularDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -domain = $this->getMockBuilder(Domain::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Tests DomainTrait::getDomain() and DomainTrait::__construct(array) - */ - public function testGetDomain() - { - $model = new SingularDummyClass(['domain' => $this->domain,]); - $this->assertEquals($this->domain, $model->getDomain()); - } - - /** - * Tests DomainTrait::setDomain() - */ - public function testSetDomain() - { - $model = new SingularDummyClass(); - $model->setDomain($this->domain); - $this->assertEquals($this->domain, $model->getDomain()); - } -} diff --git a/tests/unit_tests/Friends/Environment/SingularDummyClass.php b/tests/unit_tests/Friends/Environment/SingularDummyClass.php deleted file mode 100644 index 322d1fd5a..000000000 --- a/tests/unit_tests/Friends/Environment/SingularDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -collection = $this->getMockBuilder(SingularDummyClass::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new SingularDummyClass(null, ['collection' => $this->collection,]); - } - - /** - * Tests EnvironmentTrait::getEnvironment() - */ - public function testGetEnvironment() - { - $environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->once()) - ->method('getEnvironment') - ->with() - ->willReturn($environment); - - $this->assertEquals($environment, $this->model->getEnvironment()); - } - - /** - * Tests EnvironmentTrait::setEnvironment() - */ - public function testSetEnvironment() - { - $environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->never())->method('getEnvironment'); - - $this->model->setEnvironment($environment); - $this->assertEquals($environment, $this->model->getEnvironment()); - } -} diff --git a/tests/unit_tests/Friends/Organization/JoinDummyClass.php b/tests/unit_tests/Friends/Organization/JoinDummyClass.php deleted file mode 100644 index 9a4509006..000000000 --- a/tests/unit_tests/Friends/Organization/JoinDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -model = new JoinDummyClass(); - $this->model->id = 'model id'; - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Tests OrganizationJoinTrait::*() - */ - public function testAll() - { - $organization_references = ['model', 'thing', 'name',]; - $expected = array_merge([$this->model->id,], $organization_references); - - $this->organization->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($organization_references); - - $this->model->setOrganization($this->organization); - $this->assertEquals($expected, $this->model->getReferences()); - $this->assertEquals($this->organization, $this->model->getOrganization()); - } -} diff --git a/tests/unit_tests/Friends/Organization/PluralDummyClass.php b/tests/unit_tests/Friends/Organization/PluralDummyClass.php deleted file mode 100644 index cb94a9d39..000000000 --- a/tests/unit_tests/Friends/Organization/PluralDummyClass.php +++ /dev/null @@ -1,45 +0,0 @@ -organization_memberships; - } - - /** - * @param *OrganizationMemberships $organization_memberships - */ - public function setOrganizationMemberships($organization_memberships) - { - $this->organization_memberships = $organization_memberships; - } - - /** - * @return array - */ - public function serialize() - { - return $this->attributes; - } -} diff --git a/tests/unit_tests/Friends/Organization/PluralTest.php b/tests/unit_tests/Friends/Organization/PluralTest.php deleted file mode 100644 index 0a68bdc11..000000000 --- a/tests/unit_tests/Friends/Organization/PluralTest.php +++ /dev/null @@ -1,72 +0,0 @@ -memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new PluralDummyClass(); - $this->model->setOrganizationMemberships($this->memberships); - } - - public function testGetOrganizations() - { - $organization_data = [ - ['id' => 'organization a', 'name' => 'organization name a',], - ['id' => 'organization b', 'name' => 'organization name b',], - ['id' => 'organization c', 'name' => 'organization name c',], - ]; - $organizations = []; - $members = []; - foreach ($organization_data as $organization) { - $member_mock = $this->getMockBuilder(SiteOrganizationMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $organization_mock = $this->getMockBuilder(Organization::class) - ->setConstructorArgs([(object)$organization,]) - ->getMock(); - $organization_mock->id = $organization['id']; - $member_mock->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($organization_mock); - $members[] = $member_mock; - $organizations[$organization_mock->id] = $organization_mock; - } - - $this->memberships->expects($this->once()) - ->method('all') - ->with() - ->willReturn($members); - - $this->assertEquals($organizations, $this->model->getOrganizations()); - } -} diff --git a/tests/unit_tests/Friends/Organization/SingularDummyClass.php b/tests/unit_tests/Friends/Organization/SingularDummyClass.php deleted file mode 100644 index 5cf61e956..000000000 --- a/tests/unit_tests/Friends/Organization/SingularDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -collection = $this->getMockBuilder(SingularDummyClass::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new SingularDummyClass(null, ['collection' => $this->collection,]); - } - - /** - * Tests OrganizationTrait::getOrganization() - */ - public function testGetOrganization() - { - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($organization); - - $this->assertEquals($organization, $this->model->getOrganization()); - } - - /** - * Tests OrganizationTrait::setOrganization() - */ - public function testSetOrganization() - { - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->never())->method('getOrganization'); - - $this->model->setOrganization($organization); - $this->assertEquals($organization, $this->model->getOrganization()); - } -} diff --git a/tests/unit_tests/Friends/Profile/DummyClass.php b/tests/unit_tests/Friends/Profile/DummyClass.php deleted file mode 100644 index 9c9bbd9b9..000000000 --- a/tests/unit_tests/Friends/Profile/DummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -model = new DummyClass(); - } - - /** - * Tests ProfileTrait::getProfile() and ProfileTrait::setProfile() - */ - public function testAll() - { - $profile = $this->getMockBuilder(Profile::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model->setProfile($profile); - $this->assertEquals($profile, $this->model->getProfile()); - } -} diff --git a/tests/unit_tests/Friends/Site/JoinDummyClass.php b/tests/unit_tests/Friends/Site/JoinDummyClass.php deleted file mode 100644 index 9dbf47b5c..000000000 --- a/tests/unit_tests/Friends/Site/JoinDummyClass.php +++ /dev/null @@ -1,20 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = 'site id'; - - $this->model = new JoinDummyClass((object)['site' => (object)['id' => $this->site->id,],]); - $this->model->id = 'model id'; - $this->model->setContainer($this->container); - } - - /** - * Tests SiteJoinTrait::*() - */ - public function testAll() - { - $site_references = ['model', 'thing', 'name',]; - $expected = array_merge([$this->model->id,], $site_references); - - $another_site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $another_site->id = $this->model->id; - $this->container->expects($this->once()) - ->method('get') - ->with(Site::class, [(object)['id' => $this->site->id,],]) - ->willReturn($another_site); - $copy_of_another_site = $this->model->getSite(); - $this->assertEquals([$this->model,], $copy_of_another_site->memberships); - $this->assertEquals($this->model->id, $copy_of_another_site->id); - - $this->site->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($site_references); - - $this->model->setSite($this->site); - $this->assertEquals($expected, $this->model->getReferences()); - $this->assertEquals($this->site, $this->model->getSite()); - } -} diff --git a/tests/unit_tests/Friends/Site/PluralDummyClass.php b/tests/unit_tests/Friends/Site/PluralDummyClass.php deleted file mode 100644 index 2b280125f..000000000 --- a/tests/unit_tests/Friends/Site/PluralDummyClass.php +++ /dev/null @@ -1,37 +0,0 @@ -site_memberships; - } - - /** - * @param *SiteMemberships $site_memberships - */ - public function setSiteMemberships($site_memberships) - { - $this->site_memberships = $site_memberships; - } -} diff --git a/tests/unit_tests/Friends/Site/PluralTest.php b/tests/unit_tests/Friends/Site/PluralTest.php deleted file mode 100644 index 007935f2c..000000000 --- a/tests/unit_tests/Friends/Site/PluralTest.php +++ /dev/null @@ -1,72 +0,0 @@ -memberships = $this->getMockBuilder(UserSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new PluralDummyClass(); - $this->model->setSiteMemberships($this->memberships); - } - - public function testGetSites() - { - $site_data = [ - ['id' => 'site a', 'name' => 'site name a',], - ['id' => 'site b', 'name' => 'site name b',], - ['id' => 'site c', 'name' => 'site name c',], - ]; - $sites = []; - $members = []; - foreach ($site_data as $site) { - $member_mock = $this->getMockBuilder(UserSiteMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $site_mock = $this->getMockBuilder(Site::class) - ->setConstructorArgs([(object)$site,]) - ->getMock(); - $site_mock->id = $site['id']; - $member_mock->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($site_mock); - $members[] = $member_mock; - $sites[$site_mock->id] = $site_mock; - } - - $this->memberships->expects($this->once()) - ->method('all') - ->with() - ->willReturn($members); - - $this->assertEquals($sites, $this->model->getSites()); - } -} diff --git a/tests/unit_tests/Friends/Site/SingularDummyClass.php b/tests/unit_tests/Friends/Site/SingularDummyClass.php deleted file mode 100644 index 37e712e59..000000000 --- a/tests/unit_tests/Friends/Site/SingularDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -collection = $this->getMockBuilder(SingularDummyClass::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new SingularDummyClass(null, ['collection' => $this->collection,]); - } - - /** - * Tests SiteTrait::__construct(object, array) - */ - public function testConstruct() - { - $this->collection->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($this->site); - $model = new SingularDummyClass(null, ['collection' => $this->collection,]); - $this->assertEquals($this->site, $model->getSite()); - - $model = new SingularDummyClass(null, ['site' => $this->site,]); - $this->assertEquals($this->site, $model->getSite()); - } - - /** - * Tests SiteTrait::getSite() - */ - public function testGetSite() - { - $this->collection->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($this->site); - - $this->assertEquals($this->site, $this->model->getSite()); - } - - /** - * Tests SiteTrait::setSite() - */ - public function testSetSite() - { - $this->collection->expects($this->never())->method('getSite'); - - $this->model->setSite($this->site); - $this->assertEquals($this->site, $this->model->getSite()); - } -} diff --git a/tests/unit_tests/Friends/User/JoinDummyClass.php b/tests/unit_tests/Friends/User/JoinDummyClass.php deleted file mode 100644 index b2b917f1c..000000000 --- a/tests/unit_tests/Friends/User/JoinDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -model = new JoinDummyClass(); - $this->model->id = 'model id'; - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Tests UserJoinTrait::*() - */ - public function testAll() - { - $user_references = ['model', 'thing', 'name',]; - $expected = array_merge([$this->model->id,], $user_references); - - $this->user->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($user_references); - - $this->model->setUser($this->user); - $this->assertEquals($expected, $this->model->getReferences()); - $this->assertEquals($this->user, $this->model->getUser()); - } -} diff --git a/tests/unit_tests/Friends/User/PluralDummyClass.php b/tests/unit_tests/Friends/User/PluralDummyClass.php deleted file mode 100644 index cf1e229f0..000000000 --- a/tests/unit_tests/Friends/User/PluralDummyClass.php +++ /dev/null @@ -1,37 +0,0 @@ -user_memberships; - } - - /** - * @param *UserMemberships $user_memberships - */ - public function setUserMemberships($user_memberships) - { - $this->user_memberships = $user_memberships; - } -} diff --git a/tests/unit_tests/Friends/User/PluralTest.php b/tests/unit_tests/Friends/User/PluralTest.php deleted file mode 100644 index 90bd313d9..000000000 --- a/tests/unit_tests/Friends/User/PluralTest.php +++ /dev/null @@ -1,72 +0,0 @@ -memberships = $this->getMockBuilder(SiteUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new PluralDummyClass(); - $this->model->setUserMemberships($this->memberships); - } - - public function testGetUsers() - { - $user_data = [ - ['id' => 'user a', 'name' => 'user name a',], - ['id' => 'user b', 'name' => 'user name b',], - ['id' => 'user c', 'name' => 'user name c',], - ]; - $users = []; - $members = []; - foreach ($user_data as $user) { - $member_mock = $this->getMockBuilder(SiteUserMembership::class) - ->disableOriginalConstructor() - ->getMock(); - $user_mock = $this->getMockBuilder(User::class) - ->setConstructorArgs([(object)$user,]) - ->getMock(); - $user_mock->id = $user['id']; - $member_mock->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user_mock); - $members[] = $member_mock; - $users[$user_mock->id] = $user_mock; - } - - $this->memberships->expects($this->once()) - ->method('all') - ->with() - ->willReturn($members); - - $this->assertEquals($users, $this->model->getUsers()); - } -} diff --git a/tests/unit_tests/Friends/User/SingularDummyClass.php b/tests/unit_tests/Friends/User/SingularDummyClass.php deleted file mode 100644 index 443ab675b..000000000 --- a/tests/unit_tests/Friends/User/SingularDummyClass.php +++ /dev/null @@ -1,17 +0,0 @@ -collection = $this->getMockBuilder(SingularDummyClass::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = new SingularDummyClass(null, ['collection' => $this->collection,]); - } - - /** - * Tests UserTrait::getUser() - */ - public function testGetUser() - { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - - $this->assertEquals($user, $this->model->getUser()); - } - - /** - * Tests UserTrait::setUser() - */ - public function testSetUser() - { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->expects($this->never())->method('getUser'); - - $this->model->setUser($user); - $this->assertEquals($user, $this->model->getUser()); - } -} diff --git a/tests/unit_tests/Helpers/AliasFixtures.php b/tests/unit_tests/Helpers/AliasFixtures.php deleted file mode 100644 index 9f59df90e..000000000 --- a/tests/unit_tests/Helpers/AliasFixtures.php +++ /dev/null @@ -1,108 +0,0 @@ -remove($tmpDir); - } - static::$tmpDirs = []; - } - - /** - * Create a new temporary directory. - * - * @param string|bool $basedir Where to store the temporary directory - * @param string|bool $name Pattern to name the temporary directory - * @return string - */ - public static function mktmpdir($basedir = false, $name = false) - { - $tmp_parent = realpath($basedir ?: sys_get_temp_dir()); - $tempfile = tempnam($tmp_parent, $name ?: 'terminus-alias-tests'); - unlink($tempfile); - mkdir($tempfile); - static::$tmpDirs[] = $tempfile; - return $tempfile; - } - - /** - * Alias fixture representing a few sites. - * - * @return array - */ - public static function aliasReplacementsFixture() - { - return [ - 'personalsite' => static::aliasReplacement('personalsite', '33333333-3333-3333-3333-333333333333'), - 'demo' => static::aliasReplacement('demo', '44444444-4444-4444-4444-444444444444'), - 'agency' => static::aliasReplacement('agency', '55555555-5555-5555-5555-555555555555'), - ]; - } - - /** - * A few more site alias fixtures. - * - * @return array - */ - public static function additionalAliasReplacementsFixtures() - { - return [ - 'site201' => static::aliasReplacement('site201', 'bfc9e1d2-25f8-1379-198b-06bc018a1a86'), - 'site13' => static::aliasReplacement('site13', 'f0971262-91c2-1375-6e53-b337ae5a6d9e'), - 'site9' => static::aliasReplacement('site9', '87680dcd-20fc-7efe-71dc-91db39c42b85'), - 'site78' => static::aliasReplacement('site78', '2ad1b926-1a78-aa81-1f72-51fd6c0c2271'), - ]; - } - - /** - * Create an alias replacements record for a single site - */ - protected static function aliasReplacement($name, $id) - { - return [ - '{{site_name}}' => $name, - '{{env_name}}' => '*', - '{{env_label}}' => '${env-name}', - '{{site_id}}' => $id, - ]; - } -} diff --git a/tests/unit_tests/Helpers/DrushRcEmitterTest.php b/tests/unit_tests/Helpers/DrushRcEmitterTest.php deleted file mode 100644 index 265758bea..000000000 --- a/tests/unit_tests/Helpers/DrushRcEmitterTest.php +++ /dev/null @@ -1,36 +0,0 @@ -write($alias_replacements); - $this->assertFileExists($location); - $actual = file_get_contents($location); - - $expected = AliasFixtures::load('drushrcEmitter/standardAliasFixtureWithoutDbUrl.out'); - - $this->assertEquals(trim($expected), trim($actual)); - } -} diff --git a/tests/unit_tests/Helpers/LocalMachineHelperTest.php b/tests/unit_tests/Helpers/LocalMachineHelperTest.php deleted file mode 100644 index 51f4c7b36..000000000 --- a/tests/unit_tests/Helpers/LocalMachineHelperTest.php +++ /dev/null @@ -1,160 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->input = $this->getMockBuilder(InputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->process_progress_bar = $this->getMockBuilder(ProcessProgressBar::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->container->method('get') - ->with(ProcessProgressBar::class) - ->willReturn($this->process_progress_bar); - - $this->local_machine = new LocalMachineHelper(); - $this->local_machine->setConfig($this->config); - $this->local_machine->setInput($this->input); - $this->local_machine->setContainer($this->container); - } - - /** - * Tests the LocalMachineHelper::exec($command) function - */ - public function testExec() - { - $out = $this->local_machine->exec('ls'); - $this->assertEquals(0, $out['exit_code']); - } - - /** - * Tests the LocalMachineHelper::execute($command, $callback, $progress) function - */ - public function testExecute() - { - $out = $this->local_machine->execute('ls'); - $this->assertEquals(0, $out['exit_code']); - } - - /** - * Tests the LocalMachineHelper::getFilesystem() function - */ - public function testGetFilesystem() - { - $this->assertInstanceOf(Filesystem::class, $this->local_machine->getFilesystem()); - } - - /** - * Tests the LocalMachineHelper::readFile() function - */ - public function testReadFile() - { - $file_name = $this->getTestFileName(); - $content = 'file content'; - $this->expectFileOperations($file_name); - file_put_contents($file_name, $content); - $this->assertEquals($content, $this->local_machine->readFile($file_name)); - } - - /** - * Tests the LocalMachineHelper::useTty() function when in interactive mode - */ - public function testUseTtyInteractive() - { - $this->input->expects($this->once()) - ->method('isInteractive') - ->with() - ->willReturn(true); - $useTty = $this->local_machine->useTty(); - $this->assertTrue(in_array($useTty, [false, null,])); - } - - /** - * Tests the LocalMachineHelper::useTty() function when not in interactive mode - */ - public function testUseTtyNoninteractive() - { - $this->input->expects($this->once()) - ->method('isInteractive') - ->with() - ->willReturn(false); - $this->assertFalse($this->local_machine->useTty()); - } - - /** - * Tests the LocalMachineHelper::readFile() function - */ - public function testWriteFile() - { - $file_name = $this->getTestFileName(); - $content = 'other file content'; - $this->expectFileOperations($file_name); - $this->assertNull($this->local_machine->writeFile($file_name, $content)); - $this->assertEquals($content, file_get_contents($file_name)); - } - - protected function expectFileOperations($file_name) - { - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('user_home')) - ->willReturn('~'); - $this->config->expects($this->once()) - ->method('fixDirectorySeparators') - ->with($this->equalTo($file_name)) - ->willReturn($file_name); - } - - /** - * Returns a temporary file name - * - * @return string - */ - protected function getTestFileName() - { - return tempnam(sys_get_temp_dir(), 'lmhtest_'); - } -} diff --git a/tests/unit_tests/Helpers/PrintingEmitterTest.php b/tests/unit_tests/Helpers/PrintingEmitterTest.php deleted file mode 100644 index 85f7ab292..000000000 --- a/tests/unit_tests/Helpers/PrintingEmitterTest.php +++ /dev/null @@ -1,35 +0,0 @@ -write($alias_replacements); - $actual = $buffer->fetch(); - - $expected = AliasFixtures::load('drushrcEmitter/standardAliasFixtureWithoutDbUrl.out'); - - $this->assertEquals(trim($expected), trim($actual)); - } -} diff --git a/tests/unit_tests/Helpers/SitesYmlEmitterTest.php b/tests/unit_tests/Helpers/SitesYmlEmitterTest.php deleted file mode 100644 index 30ac86ad5..000000000 --- a/tests/unit_tests/Helpers/SitesYmlEmitterTest.php +++ /dev/null @@ -1,37 +0,0 @@ -write($alias_replacements); - - $expectedPathList = [ - 'drush.yml', - 'sites/pantheon/agency.site.yml', - 'sites/pantheon/demo.site.yml', - 'sites/pantheon/personalsite.site.yml', - ]; - foreach ($expectedPathList as $path) { - $location = "$base/$path"; - $this->assertFileExists($location); - $actual = file_get_contents($location); - - $expected = AliasFixtures::load("sitesYmlEmitter/standardWithoutDbUrl/$path"); - $this->assertEquals("$path:\n" . trim($expected), "$path:\n" . trim($actual)); - } - } -} diff --git a/tests/unit_tests/Helpers/TemplateTest.php b/tests/unit_tests/Helpers/TemplateTest.php deleted file mode 100644 index 4705e0e99..000000000 --- a/tests/unit_tests/Helpers/TemplateTest.php +++ /dev/null @@ -1,76 +0,0 @@ - 'MYSITE', - '{{env_name}}' => 'MULTIDEV', - '{{env_label}}' => 'MULTIDEV', - '{{site_id}}' => '00000000-0000-0000-0000-000000000000', - ]; - - $replacementsWithDbUrl = $replacementsWithoutDbUrl + [ - '{{db_password}}' => 'SECRETSECRET', - '{{db_port}}' => '10101', - ]; - - $siteYmlWithoutDbUrl = <<assertEquals(trim($expected), trim($actual)); - } -} diff --git a/tests/unit_tests/Hooks/AuthorizerTest.php b/tests/unit_tests/Hooks/AuthorizerTest.php deleted file mode 100644 index 499f13b4a..000000000 --- a/tests/unit_tests/Hooks/AuthorizerTest.php +++ /dev/null @@ -1,182 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->token = $this->getMockBuilder(SavedToken::class) - ->disableOriginalConstructor() - ->getMock(); - $this->tokens = $this->getMockBuilder(SavedTokens::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->authorizer = new Authorizer(); - $this->authorizer->setConfig($this->config); - $this->authorizer->setSession($this->session); - } - - /** - * Tests the Authorizer::ensureLogin() function when the user is logged in - */ - public function testEnsureLoginLoggedIn() - { - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(true); - $this->session->expects($this->never()) - ->method('getTokens'); - $this->tokens->expects($this->never()) - ->method('all'); - $this->tokens->expects($this->never()) - ->method('get'); - $this->config->expects($this->never()) - ->method('get'); - $this->token->expects($this->never()) - ->method('logIn'); - - $this->assertNull($this->authorizer->ensureLogin()); - } - - /** - * Tests the Authorizer::ensureLogin() function when the user has one saved token and is not logged in - */ - public function testEnsureLoginWithOneSavedToken() - { - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(false); - $this->session->expects($this->once()) - ->method('getTokens') - ->with() - ->willReturn($this->tokens); - $this->tokens->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->token,]); - $this->config->expects($this->never()) - ->method('get'); - $this->tokens->expects($this->never()) - ->method('get'); - $this->token->expects($this->once()) - ->method('logIn') - ->with(); - - $this->assertNull($this->authorizer->ensureLogin()); - } - - /** - * Tests the Authorizer::ensureLogin() function when the user has several saved tokens and the 'user' config - * setting has been set and is not logged in - */ - public function testEnsureLoginWithUserConfigSetting() - { - $email = 'handle@domain.ext'; - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(false); - $this->session->expects($this->once()) - ->method('getTokens') - ->with() - ->willReturn($this->tokens); - $this->tokens->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$this->token, $this->token,]); - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('user')) - ->willReturn($email); - $this->tokens->expects($this->once()) - ->method('get') - ->with() - ->willReturn($this->token); - $this->token->expects($this->once()) - ->method('logIn') - ->with(); - - $this->assertNull($this->authorizer->ensureLogin()); - } - - /** - * Tests the Authorizer::ensureLogin() function when the user has no saved tokens and is not logged in - */ - public function testEnsureLoginNoTokens() - { - $this->session->expects($this->once()) - ->method('isActive') - ->with() - ->willReturn(false); - $this->session->expects($this->once()) - ->method('getTokens') - ->with() - ->willReturn($this->tokens); - $this->tokens->expects($this->once()) - ->method('all') - ->with() - ->willReturn([]); - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('user')) - ->willReturn(''); - $this->tokens->expects($this->never()) - ->method('get'); - $this->token->expects($this->never()) - ->method('logIn'); - - $this->setExpectedException( - TerminusException::class, - 'You are not logged in. Run `auth:login` to authenticate or `help auth:login` for more info.' - ); - - $this->assertNull($this->authorizer->ensureLogin()); - } -} diff --git a/tests/unit_tests/Hooks/RoleValidatorTest.php b/tests/unit_tests/Hooks/RoleValidatorTest.php deleted file mode 100644 index 537c0be8c..000000000 --- a/tests/unit_tests/Hooks/RoleValidatorTest.php +++ /dev/null @@ -1,230 +0,0 @@ -config = new TerminusConfig(); - - $this->annotation_data = $this->getMockBuilder(AnnotationData::class) - ->disableOriginalConstructor() - ->getMock(); - $this->command_data = $this->getMockBuilder(CommandData::class) - ->disableOriginalConstructor() - ->getMock(); - $this->exception = $this->getMockBuilder(TerminusException::class) - ->disableOriginalConstructor() - ->getMock(); - $this->input = $this->getMockBuilder(InputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->command_data->expects($this->once()) - ->method('input') - ->with() - ->willReturn($this->input); - - $this->role_validator = new RoleValidator(); - } - - /** - * Tests validateRole for a command without a role parameter - */ - public function testValidateRoleNoRole() - { - $this->expectHasArgument(false); - $this->expectCommandName("doesn't matter", false); - $this->expectGetArgument("doesn't matter", false); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Tests validateRole for an org command with an invalid role parameter - */ - public function testValidateRoleOrgInvalid() - { - $invalid_role = 'invalid'; - - $this->expectHasArgument(); - $this->expectCommandName('org:whatever:idk'); - $this->expectGetArgument($invalid_role); - $this->expectInvalidRoleException($invalid_role, self::ORG_ROLES); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Tests validateRole for an org command with a valid role parameter - */ - public function testValidateRoleOrgValid() - { - $valid_role = 'admin'; - - $this->expectHasArgument(); - $this->expectCommandName('org:whatever:idk'); - $this->expectGetArgument($valid_role); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Tests validateRole for a site command with an invalid role parameter - */ - public function testValidateRoleSiteInvalid() - { - $invalid_role = 'admin'; // This one is valid for org commands but not site ones - - $this->expectHasArgument(); - $this->expectCommandName('site:omg:wth'); - $this->expectGetArgument($invalid_role); - $this->expectInvalidRoleException($invalid_role, self::SITE_ROLES); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Tests validateRole for a site command with a valid role parameter - */ - public function testValidateRoleSiteValid() - { - $valid_role = 'team_member'; - - $this->expectHasArgument(); - $this->expectCommandName('site:omg:wth'); - $this->expectGetArgument($valid_role); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Tests validateRole for a command that doesn't have a role list - */ - public function testValidateRoleWrongCommand() - { - $invalid_command = 'user:wrong:cmd'; - - $this->expectHasArgument(); - $this->expectCommandName($invalid_command); - $this->expectGetArgument("doesn't matter", false); - $this->expectInvalidCommandNameException($invalid_command); - - $this->role_validator->validateRole($this->command_data); - } - - /** - * Sets up the test to expect the input to have the argument or not - * - * @param bool $expect - */ - protected function expectHasArgument($expect = true) - { - $this->input->expects($this->once()) - ->method('hasArgument') - ->with(self::PARAM_NAME) - ->willReturn($expect); - } - - /** - * Sets up the test to expect the input to have the argument or not - * - * @param bool $expect - */ - protected function expectCommandName($command_name, $expect = true) - { - $expectation = $expect ? $this->once() : $this->any(); - - $this->command_data->expects($expectation) - ->method('annotationData') - ->with() - ->willReturn($this->annotation_data); - $this->annotation_data->method('get') - ->with('command') - ->willReturn($command_name); - } - - /** - * Sets up the test to expect the input to have the argument or not - * - * @param bool $expect - */ - protected function expectGetArgument($value, $expect = true) - { - $expectation = $expect ? $this->once() : $this->never(); - - $this->input->expects($expectation) - ->method('getArgument') - ->with(self::PARAM_NAME) - ->willReturn($value); - } - - /** - * Expects an invalid-command exception to be thrown - * - * @param $command_name Name of the command whose parameter is being validated - */ - protected function expectInvalidCommandNameException($command_name) - { - $expected_exception = new TerminusException( - 'The available roles for {command_name} are unknown.', - compact('command_name') - ); - $this->setExpectedException(get_class($expected_exception), $expected_exception->getMessage()); - } - - /** - * Expects an invalid-role exception to be thrown - * - * @param $role - * @param $roles - */ - protected function expectInvalidRoleException($role, $roles) - { - $expected_exception = new TerminusException( - '{role} is not a valid role selection. Please enter {roles}.', - compact('role', 'roles') - ); - $this->setExpectedException(get_class($expected_exception), $expected_exception->getMessage()); - } -} diff --git a/tests/unit_tests/Hooks/SiteEnvLookupTest.php b/tests/unit_tests/Hooks/SiteEnvLookupTest.php deleted file mode 100644 index edf1d6666..000000000 --- a/tests/unit_tests/Hooks/SiteEnvLookupTest.php +++ /dev/null @@ -1,308 +0,0 @@ - 'site-from-config', - 'env' => 'dev', - ]; - } - - /** - * @inheritdoc - */ - public function setUp() - { - $this->config = new TerminusConfig(); - - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = self::SITE_ID_FIXTURE; - - $this->site->method('getName') - ->willReturn('site-from-repo'); - - $this->sites = $this->getMockBuilder(Sites::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->sites->method('get') - ->willReturn($this->site); - - $this->sites->expects($this->never()) - ->method('someMethod'); - - $this->sites->expects($this->any()) - ->method('getSite') - ->with(self::SITE_ID_FIXTURE) - ->willReturn($this->site); - - $this->siteEnvLookup = new SiteEnvLookup(); - $this->siteEnvLookup->setConfig($this->config); - $this->siteEnvLookup->setSites($this->sites); - } - - /** - * Data provider for testEnsureSiteEnvInjected - */ - public function siteEnvLookupParameters() - { - return [ - - // Site not specified on commandline - // Command takes site_env and variable arguments - // TERMINUS_SITE and TERMINUS_ENV set in configuration - [ - ['command: example:op', 'site_env: site-from-config.dev', 'list: [a, b]'], - ['program', 'example:op', 'a', 'b'], - $this->siteEnvVarArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Like the previous test, but a different site is specified on the commandline - [ - ['command: example:op', 'site_env: othersite.test', 'list: [a, b]'], - ['program', 'example:op', 'othersite.test', 'a', 'b'], - $this->siteEnvVarArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Site not specified on commandline, and nothing provided in configuration - [ - ['command: example:op', 'site_env: a', 'list: [b]'], - ['program', 'example:op', 'a', 'b'], - $this->siteEnvVarArgsDef(), - [], - ], - - // Site not speicifed on commandline - // Command takes site_env and one other required argument - // TERMINUS_SITE and TERMINUS_ENV set in configuration - [ - ['command: example:op', 'site_env: site-from-config.dev', 'item: a'], - ['program', 'example:op', 'a'], - $this->siteEnvRequiredArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Like the previous test, but a different site is specified on the commandline - [ - ['command: example:op', 'site_env: othersite.test', 'item: a'], - ['program', 'example:op', 'othersite.test', 'a'], - $this->siteEnvRequiredArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Site not specified on commandline, and nothing provided in configuration - [ - ['command: example:op', 'site_env: a', 'item: EMPTY'], - ['program', 'example:op', 'a'], - $this->siteEnvRequiredArgsDef(), - [], - ], - - // Site not speicifed on commandline - // Command takes site and one other required argument - // TERMINUS_SITE and TERMINUS_ENV set in configuration - [ - ['command: example:op', 'site: site-from-config', 'item: a'], - ['program', 'example:op', 'a'], - $this->siteRequiredArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Like the previous test, but a different site is specified on the commandline - [ - ['command: example:op', 'site: othersite', 'item: a'], - ['program', 'example:op', 'othersite', 'a'], - $this->siteRequiredArgsDef(), - $this->terminusSiteWithTerminusEnv(), - ], - - // Site not specified on commandline, and nothing provided in configuration - [ - ['command: example:op', 'site: EMPTY', 'item: a'], - ['program', 'example:op', 'a'], - $this->siteRequiredArgsDef(), - [], - ], - - ]; - } - - /** - * Tests the SiteEnvLookupTest::siteAndEnvLookupHook when - * the command has a 'site_env' parameter, and TERMINUS_SITE - * and TERMINUS_ENV are specified in configuration. - * - * @dataProvider siteEnvLookupParameters - */ - public function testEnsureSiteEnvInjected( - array $expected, - array $args, - \Symfony\Component\Console\Input\InputDefinition $def, - array $configData - ) { - $this->config->replace($configData); - - $input = new \Symfony\Component\Console\Input\ArgvInput($args, $def); - $annotationData = new AnnotationData(); - - $this->siteEnvLookup->siteAndEnvLookupHook($input, $annotationData); - - $expectedString = implode("\n", $expected); - $actualArgs = $input->getArguments(); - - // Convert from associative key => value to list "key: value" - $actualArgs = array_map( - function ($key) use ($actualArgs) { - $value = $actualArgs[$key]; - if (is_array($value)) { - $value = '[' . implode(', ', $value) . ']'; - } elseif (empty($value)) { - $value = 'EMPTY'; - } - return "$key: $value"; - }, - array_keys($actualArgs) - ); - - $actualString = implode("\n", $actualArgs); - - $this->assertEquals($expectedString, $actualString); - } - - /** - * This test feeds more data to siteEnvLookupParameters - * after setting up a git repository fixture to test detecting - * a site via the git repository information. - */ - public function testInjectSiteFromRepoUrlLookup() - { - $tmp = tempnam(sys_get_temp_dir(), 'terminus_test_'); - unlink($tmp); - mkdir($tmp); - - // Set up a fixture repository simulating a Pantheon - // site with a site id of "abc", which lines up with - // the site id recognized by the mocked site 'site-from-repo'. - $site_id = self::SITE_ID_FIXTURE; - passthru("git -C $tmp init"); - passthru("git -C $tmp config user.email 'ci@example.com'"); - passthru("git -C $tmp config user.name 'CI Bot'"); - passthru( - "git -C $tmp remote add origin " - . "'ssh://codeserver.dev.{$site_id}@codeserver.dev.${site_id}.drush.in:2222/~/repository.git'" - ); - file_put_contents("$tmp/file", 'placeholder'); - passthru("git -C $tmp add file"); - passthru("git -C $tmp commit -m Testing"); - - chdir($tmp); - - $this->testEnsureSiteEnvInjected( - ['command: example:op', 'site_env: site-from-repo.dev', 'item: a'], - ['program', 'example:op', 'a'], - $this->siteEnvRequiredArgsDef(), - [] - ); - - // Change our fixture repository to simulate a repository - // that is not a Pantheon site. - passthru("git -C $tmp remote set-url origin 'git@github.com:org/project.git'"); - - $this->testEnsureSiteEnvInjected( - ['command: example:op', 'site_env: a', 'item: EMPTY'], - ['program', 'example:op', 'a'], - $this->siteEnvRequiredArgsDef(), - [] - ); - - // For some reason, Appveyor fails with "permission denied" when - // trying to remove objects in the .git directory. We'll just let - // Appveyor stay dirty. - if (getenv('APPVEYOR')) { - return; - } - - // Recursively remove tmp directory - $fs = new Filesystem(); - $fs->remove($tmp); - } -} diff --git a/tests/unit_tests/Models/BackupTest.php b/tests/unit_tests/Models/BackupTest.php deleted file mode 100644 index 168d8b219..000000000 --- a/tests/unit_tests/Models/BackupTest.php +++ /dev/null @@ -1,247 +0,0 @@ -getBackup(['size' => 12345, 'finish_time' => 123456,]); - $this->assertTrue($backup->backupIsFinished()); - - $backup = $this->getBackup(['size' => 12345, 'timestamp' => 123456,]); - $this->assertTrue($backup->backupIsFinished()); - - $backup = $this->getBackup(['size' => 12345,]); - $this->assertFalse($backup->backupIsFinished()); - - $backup = $this->getBackup(['finish_time' => 12345,]); - $this->assertFalse($backup->backupIsFinished()); - - $backup = $this->getBackup(['timestamp' => 12345,]); - $this->assertFalse($backup->backupIsFinished()); - } - - public function testGetArchiveURL() - { - $expected = 'https://url.com'; - $folder = 'xyz_manual'; - $this->request->expects($this->once()) - ->method('request') - ->with( - "sites/abc/environments/dev/backups/catalog/$folder/type/s3token", - ['method' => 'post', 'form_params' => ['method' => 'get',],] - ) - ->willReturn(['data' => (object)['url' => $expected,],]); - - $backup = $this->getBackup(compact('folder')); - $this->assertEquals($expected, $backup->getArchiveURL()); - } - - public function testGetBucket() - { - $backup = $this->getBackup(); - - $expected = 'pantheon-backups'; - $actual = $backup->getBucket(); - $this->assertEquals($expected, $actual); - - $this->configSet(['host' => 'onebox']); - $expected = 'onebox-pantheon-backups'; - $actual = $backup->getBucket(); - $this->assertEquals($expected, $actual); - } - - public function testGetDate() - { - $stamp = 1479742685; - - $backup = $this->getBackup(['finish_time' => $stamp,]); - $this->assertEquals($stamp, $backup->getDate()); - - $backup = $this->getBackup(['timestamp' => $stamp,]); - $this->assertEquals($stamp, $backup->getDate()); - - $backup = $this->getBackup([]); - $this->assertEquals('Pending', $backup->getDate()); - } - - public function testGetExpiry() - { - $stamp = 1479742685; - $ttl = 12345; - $expected = $stamp + $ttl; - - $backup = $this->getBackup(['finish_time' => $stamp, 'ttl' => $ttl,]); - $this->assertEquals($expected, $backup->getExpiry()); - - $backup = $this->getBackup(['timestamp' => $stamp, 'ttl' => $ttl,]); - $this->assertEquals($expected, $backup->getExpiry()); - - $backup = $this->getBackup([]); - $this->assertNull($backup->getExpiry()); - } - - public function testGetInitiator() - { - $backup = $this->getBackup(['folder' => 'xyz_automated',]); - $expected = 'automated'; - $actual = $backup->getInitiator(); - $this->assertEquals($expected, $actual); - - $backup = $this->getBackup(['folder' => 'xyz_manual',]); - $expected = 'manual'; - $actual = $backup->getInitiator(); - $this->assertEquals($expected, $actual); - } - - public function testGetSizeInMb() - { - $backup = $this->getBackup(['size' => 0,]); - $expected = '0'; - $actual = $backup->getSizeInMb(); - $this->assertEquals($expected, $actual); - - - $backup = $this->getBackup(['size' => 200,]); - $expected = '0.1MB'; - $actual = $backup->getSizeInMb(); - $this->assertEquals($expected, $actual); - - - $backup = $this->getBackup(['size' => 4508876,]); - $expected = '4.3MB'; - $actual = $backup->getSizeInMb(); - $this->assertEquals($expected, $actual); - } - - public function testRestore() - { - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $backup = $this->getBackup(['id' => 'scheduledfor_archivetype_code', 'filename' => 'def.tgz',]); - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'restore_code', - [ - 'params' => [ - 'key' => "abc/dev/scheduledfor_archivetype/def.tgz", - 'bucket' => 'pantheon-backups', - ], - ] - ) - ->willReturn($workflow); - $this->assertEquals($workflow, $backup->restore()); - - $backup = $this->getBackup(['id' => 'scheduledfor_archivetype_files', 'filename' => 'def.tgz',]); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'restore_files', - [ - 'params' => [ - 'key' => "abc/dev/scheduledfor_archivetype/def.tgz", - 'bucket' => 'pantheon-backups', - ], - ] - ) - ->willReturn($workflow); - $this->assertEquals($workflow, $backup->restore()); - - $backup = $this->getBackup(['id' => 'scheduledfor_archivetype_database', 'filename' => 'def.tgz',]); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'restore_database', - [ - 'params' => [ - 'key' => "abc/dev/scheduledfor_archivetype/def.tgz", - 'bucket' => 'pantheon-backups', - ], - ] - ) - ->willReturn($workflow); - $this->assertEquals($workflow, $backup->restore()); - - $backup = $this->getBackup(['id' => 'scheduledfor_archivetype_xyz', 'filename' => 'def.tgz',]); - $this->setExpectedException(TerminusException::class, 'This backup has no archive to restore.'); - $this->assertNull($backup->restore()); - } - - public function testSerialize() - { - $folder = 'xyz_automated'; - $backup_data = [ - 'size' => 4508876, - 'finish_time' => 1479742685, - 'folder' => $folder, - 'filename' => 'test.tar.gz', - ]; - $expected = [ - 'file' => 'test.tar.gz', - 'size' => '4.3MB', - 'date' => 1479742685, - 'expiry' => 1479742685, - 'initiator' => 'automated', - 'type' => 'type', - 'url' => null, - ]; - - $this->configSet(['date_format' => 'Y-m-d',]); - $backup = $this->getBackup($backup_data); - - $actual = $backup->serialize(); - $this->assertEquals($expected, $actual); - } - - protected function getBackup($attr = []) - { - if (empty($attr['id'])) { - $attr['id'] = 'scheduledfor_archivetype_type'; - } - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'abc'; - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'dev'; - $this->environment->method('getWorkflows')->willReturn($this->workflows); - $this->environment->method('getSite')->willReturn($site); - - $backup = new Backup((object)$attr); - $backup->setEnvironment($this->environment); - - $backup->setConfig($this->config); - $backup->setRequest($this->request); - return $backup; - } -} diff --git a/tests/unit_tests/Models/BindingTest.php b/tests/unit_tests/Models/BindingTest.php deleted file mode 100644 index 07a2e7d03..000000000 --- a/tests/unit_tests/Models/BindingTest.php +++ /dev/null @@ -1,65 +0,0 @@ -getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site_id'; - $this->collection = $this->getMockBuilder(Bindings::class) - ->disableOriginalConstructor() - ->getMock(); - $this->collection->method('getSite')->willReturn($site); - } - - /** - * Tests Binding::getUsername() when the legacy username is present in the data - */ - public function testGetUsernameWithLegacy() - { - $data = [ - 'id' => 'binding_id', - 'legacy_username' => 'pantheon_classic', - 'username' => 'new_pantheon', - ]; - $model = new Binding((object)$data, ['collection' => $this->collection,]); - $username = $model->getUsername(); - $this->assertEquals($data['legacy_username'], $username); - } - - /** - * Tests Binding::getUsername() when the legacy username is absent from the data - */ - public function testGetUsernameWithoutLegacy() - { - $data = [ - 'id' => 'binding_id', - 'username' => 'new_pantheon', - ]; - $model = new Binding((object)$data, ['collection' => $this->collection,]); - $username = $model->getUsername(); - $this->assertEquals($data['username'], $username); - } -} diff --git a/tests/unit_tests/Models/BranchTest.php b/tests/unit_tests/Models/BranchTest.php deleted file mode 100644 index 61a2ab11c..000000000 --- a/tests/unit_tests/Models/BranchTest.php +++ /dev/null @@ -1,82 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site_id'; - $site->method('getWorkflows')->willReturn($this->workflows); - $this->collection = $this->getMockBuilder(Branches::class) - ->disableOriginalConstructor() - ->getMock(); - $this->collection->method('getSite')->willReturn($site); - - $this->model = new Branch((object)['id' => 'branch_id', 'sha' => 'sha',], ['collection' => $this->collection,]); - $this->model->setRequest($this->request); - } - - /** - * Tests Branch::delete() - */ - public function testDelete() - { - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('delete_environment_branch'), - $this->equalTo(['params' => ['environment_id' => $this->model->id,],]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->delete(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Branch::serialize() - */ - public function testSerialize() - { - $data = $this->model->fetch()->serialize(); - $this->assertEquals(['id' => $this->model->id, 'sha' => 'sha',], $data); - } -} diff --git a/tests/unit_tests/Models/CommitTest.php b/tests/unit_tests/Models/CommitTest.php deleted file mode 100644 index 2196fbe94..000000000 --- a/tests/unit_tests/Models/CommitTest.php +++ /dev/null @@ -1,30 +0,0 @@ - '2016-09-21T12:21:18', - 'author' => 'Daisy Duck', - 'labels' => ['test', 'dev'], - 'hash' => 'c65e638f03cabc7b97e686bb9de843b7173e329a', - 'message' => str_pad(" Add some new code\nAnother Line Here\tTab", 100, '-'), - ]; - $commit = new Commit((object)$data); - $actual = $commit->serialize(); - $expected = [ - 'datetime' => '2016-09-21T12:21:18', - 'author' => 'Daisy Duck', - 'labels' => 'test, dev', - 'hash' => 'c65e638f03cabc7b97e686bb9de843b7173e329a', - 'message' => str_pad('Add some new code Another Line Here Tab', 50, '-'), - ]; - $this->assertEquals($expected, $actual); - } -} diff --git a/tests/unit_tests/Models/DNSRecordTest.php b/tests/unit_tests/Models/DNSRecordTest.php deleted file mode 100644 index 8ad2ad0fc..000000000 --- a/tests/unit_tests/Models/DNSRecordTest.php +++ /dev/null @@ -1,75 +0,0 @@ -data = (object)[ - 'detected_value' => 'a detected value', - 'status' => 'u mad', - 'status_message' => 'beefs', - 'target_value' => 'some value', - 'type' => 'the type', - ]; - $this->dns_records = $this->getMockBuilder(DNSRecords::class) - ->disableOriginalConstructor() - ->getMock(); - $this->domain = $this->getMockBuilder(Domain::class) - ->disableOriginalConstructor() - ->getMock(); - $this->domain->id = 'domain.com'; - - $this->dns_records->expects($this->once()) - ->method('getDomain') - ->with() - ->willReturn($this->domain); - - $this->dns_record = new DNSRecord($this->data, ['collection' => $this->dns_records,]); - } - - /** - * Tests the DNSRecord::serialize() function - */ - public function testSerialize() - { - $expected = [ - 'detected_value' => 'a detected value', - 'domain' => $this->domain->id, - 'status' => 'u mad', - 'status_message' => 'beefs', - 'type' => 'the type', - 'value' => 'some value', - ]; - $this->assertEquals($expected, $this->dns_record->serialize()); - } -} diff --git a/tests/unit_tests/Models/DomainTest.php b/tests/unit_tests/Models/DomainTest.php deleted file mode 100644 index 8171f3f28..000000000 --- a/tests/unit_tests/Models/DomainTest.php +++ /dev/null @@ -1,176 +0,0 @@ -model = $this->createDomain(['id' => 'dev.example.com',]); - } - - protected function createDomain($attr) - { - $collection = $this->getMockBuilder(Domains::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->method('getWorkflows')->willReturn($this->workflows); - $this->environment->id = 'dev'; - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site id'; - - $this->environment->method('getSite')->willReturn($site); - $collection->method('getEnvironment')->willReturn($this->environment); - - $domain = new Domain((object)$attr, ['collection' => $collection,]); - $domain->setContainer($this->container); - $domain->setRequest($this->request); - return $domain; - } - - public function testDelete() - { - $this->request->expects($this->once()) - ->method('request') - ->with( - "sites/site id/environments/{$this->environment->id}/domains/dev.example.com", - ['method' => 'delete',] - ); - $this->model->delete(); - } - - /** - * Tests the Domain::getDNSRecords() function - */ - public function testGetDNSRecords() - { - $data = (object)[ - 'id' => 'domain.com', - 'dns_status_details' => (object)[ - 'dns_records' => [ - (object)[ - 'type' => 'platform', - 'id' => 'live-mysite.pantheonsite.io', - 'status' => 'status', - 'status_message' => 'status message', - 'deletable' => false, - 'extraneous' => 'info', - ] - ] - ] - ]; - $domain = $this->createDomain($data); - - $records = $this->getMockBuilder(DNSRecords::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container->expects($this->once()) - ->method('get') - ->with( - DNSRecords::class, - [['data' => $data->dns_status_details->dns_records, 'domain' => $domain,],] - ) - ->willReturn($records); - - $this->assertEquals($records, $domain->getDNSRecords()); - } - - public function testSerialize() - { - $data = [ - 'type' => 'platform', - 'id' => 'live-mysite.pantheonsite.io', - '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 = [ - 'type' => 'platform', - 'id' => 'live-mysite.pantheonsite.io', - 'status' => 'status', - 'status_message' => 'status message', - 'deletable' => false, - 'primary' => false, - ]; - - $domain = $this->createDomain($data); - $actual = $domain->serialize(); - $this->assertEquals($expected, $actual); - } -} diff --git a/tests/unit_tests/Models/EnvironmentTest.php b/tests/unit_tests/Models/EnvironmentTest.php deleted file mode 100644 index 63fbba341..000000000 --- a/tests/unit_tests/Models/EnvironmentTest.php +++ /dev/null @@ -1,1080 +0,0 @@ -model = $this->createModel(['id' => 'dev',]); - } - - public function testApplyUpstreamUpdates() - { - $this->setUpWorkflowOperationTest( - 'applyUpstreamUpdates', - [], - 'apply_upstream_updates', - ['updatedb' => true, 'xoption' => false,] - ); - $this->setUpWorkflowOperationTest( - 'applyUpstreamUpdates', - [false, true,], - 'apply_upstream_updates', - ['updatedb' => false, 'xoption' => true,] - ); - } - - public function testCacheserverConnectionInfo() - { - $username = 'username'; - $password = 'password'; - $port = 'port'; - $domain = 'domain'; - $expected = [ - 'password' => $password, - 'host' => $domain, - 'port' => $port, - 'url' => "redis://$username:$password@$domain:$port", - 'command' => "redis-cli -h $domain -p $port -a $password", - ]; - $out = $this->model->cacheserverConnectionInfo(); - $this->assertEquals($expected, $out); - } - - /** - * Tests Environment::cacheserverConnectionInfo() when there are is no host. - */ - public function testCacheserverConnectionInfoEmpty() - { - $domain = null; - $out = $this->model->cacheserverConnectionInfo(); - $this->assertEquals([], $out); - } - - public function testChangeConnectionModeToGit() - { - $this->setUpWorkflowOperationTest( - 'changeConnectionMode', - ['git'], - 'enable_git_mode', - null, - ['id' => 'dev', 'on_server_development' => true] - ); - } - - public function testChangeConnectionModeToSFTP() - { - $this->setUpWorkflowOperationTest( - 'changeConnectionMode', - ['sftp'], - 'enable_on_server_development', - null, - ['id' => 'dev'] - ); - } - - public function testChangeConnectionModeToSame() - { - $model = $this->createModel(['id' => 'dev', 'on_server_development' => true,]); - $this->setExpectedException( - TerminusException::class, - 'The connection mode is already set to sftp.' - ); - $this->assertNull($model->changeConnectionMode('sftp')); - } - - public function testChangeConnectionModeToInvalid() - { - $model = $this->createModel(['id' => 'dev', 'on_server_development' => true,]); - $this->setExpectedException( - TerminusException::class, - 'You must specify the mode as either sftp or git.' - ); - $this->assertNull($model->changeConnectionMode('doggo')); - } - - public function testClearCache() - { - $this->setUpWorkflowOperationTest( - 'clearCache', - [], - 'clear_cache', - ['framework_cache' => true,] - ); - } - - public function testCloneDatabase() - { - $this->setUpWorkflowOperationTest( - 'cloneDatabase', - [$this->model,], - 'clone_database', - ['from_environment' => 'dev',] - ); - $this->setUpWorkflowOperationTest( - 'cloneDatabase', - [$this->model,], - 'clone_database', - ['from_environment' => 'dev',] - ); - } - - public function testCloneFiles() - { - $this->setUpWorkflowOperationTest( - 'cloneFiles', - [$this->model,], - 'clone_files', - ['from_environment' => 'dev',] - ); - $this->setUpWorkflowOperationTest( - 'cloneFiles', - [$this->model,], - 'clone_files', - ['from_environment' => 'dev',] - ); - } - - public function testCommitChanges() - { - $this->workflows->expects($this->any()) - ->method('create') - ->with( - 'commit_and_push_on_server_changes', - ['params' => - [ - 'message' => 'Hello, World!', - 'committer_name' => 'Dev Tester', - 'committer_email' => 'dev@example.com' - ] - ] - ) - ->willReturn($this->workflow); - - $this->local_machine->expects($this->at(0)) - ->method('exec') - ->with('git config user.email') - ->willReturn(['output' => 'dev@example.com', 'exit_code' => 0]); - - $this->local_machine->expects($this->at(1)) - ->method('exec') - ->with('git config user.name') - ->willReturn(['output' => 'Dev Tester', 'exit_code' => 0]); - - $actual = $this->model->commitChanges('Hello, World!'); - $this->assertEquals($this->workflow, $actual); - } - - public function testConnectionInfo() - { - $this->model->id = 'env id'; - $this->site->id = 'site id'; - $password = 'password'; - $port = '2222'; - $username = 'username'; - $database = 'pantheon'; - $sftp_username = "{$this->model->id}.{$this->site->id}"; - $sftp_domain = "appserver.$sftp_username.drush.in"; - $db_domain = "dbserver.{$this->model->id}.{$this->model->getSite()->id}.drush.in"; - $cache_domain = 'domain'; - $git_domain = "codeserver.dev.{$this->site->id}.drush.in"; - $git_username = "codeserver.dev.{$this->site->id}"; - - $sftp_expected = [ - 'sftp_username' => $sftp_username, - 'sftp_host' => $sftp_domain, - 'sftp_port' => '2222', - 'sftp_url' => "sftp://$sftp_username@$sftp_domain:$port", - 'sftp_command' => "sftp -o Port=$port $sftp_username@$sftp_domain", - ]; - - $db_expected = [ - 'mysql_username' => $username, - 'mysql_password' => $password, - 'mysql_host' => $db_domain, - 'mysql_port' => $port, - 'mysql_database' => $database, - 'mysql_url' => "mysql://$username:$password@$db_domain:$port/$database", - 'mysql_command' => "mysql -u $username -p$password -h $db_domain -P $port $database", - ]; - - $cache_expected = [ - 'redis_password' => $password, - 'redis_host' => $cache_domain, - 'redis_port' => $port, - 'redis_url' => "redis://$username:$password@$cache_domain:$port", - 'redis_command' => "redis-cli -h $cache_domain -p $port -a $password", - ]; - - $git_expected = [ - 'git_username' => $git_username, - 'git_host' => $git_domain, - 'git_port' => $port, - 'git_url' => "ssh://$git_username@$git_domain:$port/~/repository.git", - 'git_command' => "git clone ssh://$git_username@$git_domain:$port/~/repository.git", - ]; - - $out = $this->model->connectionInfo(); - $this->assertEquals(array_merge($sftp_expected, $db_expected, $cache_expected, $git_expected), $out); - } - - public function testCountDeployableCode() - { - $model = $this->getModelWithCommits([]); - $this->assertFalse($model->hasDeployableCode()); - $model = $this->getModelWithCommits([]); - $this->assertEquals(0, $model->hasDeployableCode()); - - $commits = [ - ['not', 'deployable',], - ['also', 'not', 'deployable',], - ['live', 'not', 'deployable',], - ['dev', 'not', 'deployable',], - ]; - $model = $this->getModelWithCommits($commits); - $this->assertFalse($model->hasDeployableCode()); - $model = $this->getModelWithCommits($commits); - $this->assertEquals(0, $model->hasDeployableCode()); - - $commits = [ - ['not', 'deployable',], - ['also', 'not', 'deployable',], - ['not-deployable', 'live', 'test',], - ['also', 'deployable', 'test',], - ]; - $model = $this->getModelWithCommits($commits); - $this->assertTrue($model->hasDeployableCode()); - $model = $this->getModelWithCommits($commits); - $this->assertEquals(1, $model->hasDeployableCode()); - - $commits = [ - ['not', 'deployable',], - ['also', 'not', 'deployable',], - ['deployable', 'test',], - ['also', 'deployable', 'test',], - ]; - $model = $this->getModelWithCommits($commits); - $this->assertTrue($model->hasDeployableCode()); - $model = $this->getModelWithCommits($commits); - $this->assertEquals(2, $model->hasDeployableCode()); - } - - public function testDashboardUrl() - { - $this->site->expects($this->once()) - ->method('dashboardUrl') - ->willReturn('https://example.com/sites/abc'); - $actual = $this->model->dashboardUrl(); - $expected = "https://example.com/sites/abc#dev"; - $this->assertEquals($expected, $actual); - } - - public function testDatabaseConnectionInfo() - { - $this->model->id = 'env id'; - $this->site->id = 'site id'; - $password = 'password'; - $port = 'port'; - $username = 'username'; - $database = 'pantheon'; - $domain = "dbserver.{$this->model->id}.{$this->model->getSite()->id}.drush.in"; - - $expected = [ - 'username' => $username, - 'password' => $password, - 'host' => $domain, - 'port' => $port, - 'database' => $database, - 'url' => "mysql://$username:$password@$domain:$port/$database", - 'command' => "mysql -u $username -p$password -h $domain -P $port $database", - ]; - - $out = $this->model->databaseConnectionInfo(); - $this->assertEquals($expected, $out); - } - - /** - * Tests Environment::databaseConnectionInfo() when there are is no domain. - */ - public function testDatabaseConnectionInfoEmpty() - { - $domain = null; - $out = $this->model->databaseConnectionInfo(); - $this->assertEquals([], $out); - } - - - public function testDelete() - { - $model = $this->createModel(['id' => 'mymulti']); - $this->site->method('getWorkflows')->willReturn($this->workflows); - $this->workflows->expects($this->any()) - ->method('create') - ->with( - 'delete_cloud_development_environment', - ['params' => ['environment_id' => 'mymulti', 'delete_branch' => false]] - ) - ->willReturn($this->workflow); - - $actual = $model->delete(); - $this->assertEquals($this->workflow, $actual); - } - - public function testDeleteWithBranch() - { - $model = $this->createModel(['id' => 'mymulti2']); - $this->site->method('getWorkflows')->willReturn($this->workflows); - $this->workflows->expects($this->any()) - ->method('create') - ->with( - 'delete_cloud_development_environment', - ['params' => ['environment_id' => 'mymulti2', 'delete_branch' => true]] - ) - ->willReturn($this->workflow); - - $actual = $model->delete(['delete_branch' => true]); - $this->assertEquals($this->workflow, $actual); - } - - public function testDeploy() - { - $this->setUpWorkflowOperationTest( - 'deploy', - [['a' => '123', 'b' => '345',],], - 'deploy', - ['a' => '123', 'b' => '345',] - ); - } - - public function testDiffstat() - { - $expected = ['foo' => 'bar',]; - $this->request->expects($this->once()) - ->method('request') - ->with( - 'sites/abc/environments/dev/on-server-development/diffstat', - ['method' => 'get',] - ) - ->willReturn(['data' => $expected]); - $actual = $this->model->diffStat(); - $this->assertEquals($expected, $actual); - } - - public function testDisableHttpsCertificate() - { - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'sites/abc/environments/dev/settings', - ['method' => 'get'] - ) - ->willReturn(['data' => (object)['ssl_enabled' => true,],]); - - $this->workflows->expects($this->any()) - ->method('create') - ->with('disable_ssl') - ->willReturn($this->workflow); - - $workflow = $this->model->disableHttpsCertificate(); - $this->assertEquals($workflow, $this->workflow); - } - - public function testDisableHttpsCertificateNotEnabled() - { - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'sites/abc/environments/dev/settings', - ['method' => 'get'] - ) - ->willReturn(['data' => (object)['ssl_enabled' => false,],]); - - $this->setExpectedException(TerminusException::class, 'The dev environment does not have https enabled.'); - $this->model->disableHttpsCertificate(); - } - - public function testDomain() - { - $model = $this->createModel(['id' => 'dev', 'dns_zone' => 'example.com',]); - $expected = "dev-abc.example.com"; - $actual = $model->domain(); - $this->assertEquals($expected, $actual); - } - - public function testGetBackups() - { - $out = $this->model->getBackups(); - $this->assertEquals($this->backups, $out); - } - - /** - * Tests Environment::getBranchName() - */ - public function testGetBranchName() - { - $env_id = 'environment id'; - $multidev_env = $this->createModel(['id' => $env_id,]); - $this->assertEquals($env_id, $multidev_env->getBranchName()); - $this->assertEquals('master', $this->model->getBranchName()); - } - - public function testGetCommits() - { - $out = $this->model->getCommits(); - $this->assertEquals($this->commits, $out); - } - - public function testGetDrushVersion() - { - $expected = '8.0'; - $this->request->expects($this->once()) - ->method('request') - ->with( - 'sites/abc/environments/dev/settings', - ['method' => 'get',] - ) - ->willReturn(['data' => (object)['drush_version' => $expected,],]); - $actual = $this->model->getDrushVersion(); - $this->assertEquals($expected, $actual); - } - - public function testGetLock() - { - $out = $this->model->getLock(); - $this->assertEquals($this->lock, $out); - } - - public function testGetName() - { - $actual = $this->model->getName(); - $this->assertEquals('dev', $actual); - } - - public function testGetParentEnvironmentDev() - { - $this->assertNull($this->model->getParentEnvironment()); - } - - public function testGetParentEnvironmentTest() - { - $this->setUpTestGetParentEnvironment('test', 'dev'); - } - - public function testGetParentEnvironmentLive() - { - $this->setUpTestGetParentEnvironment('live', 'test'); - } - - public function testGetParentEnvironmentMultiDev() - { - $this->setUpTestGetParentEnvironment('mymulti', 'dev'); - } - - public function testGetUpstreamStatus() - { - $out = $this->model->getUpstreamStatus(); - $this->assertEquals($this->upstream_status, $out); - } - - public function testGitConnectionInfo() - { - $actual = $this->model->gitConnectionInfo(); - $expected = [ - 'username' => 'codeserver.dev.abc', - 'host' => 'codeserver.dev.abc.drush.in', - 'port' => '2222', - 'url' => 'ssh://codeserver.dev.abc@codeserver.dev.abc.drush.in:2222/~/repository.git', - 'command' => 'git clone ssh://codeserver.dev.abc@codeserver.dev.abc.drush.in:2222/~/repository.git', - ]; - $this->assertEquals($expected, $actual); - } - - public function testImportDatabase() - { - $this->setUpWorkflowOperationTest( - 'importDatabase', - ['https://example.com/myfile.sql',], - 'do_import', - [ - 'url' => 'https://example.com/myfile.sql', - 'database' => 1, - ] - ); - } - - public function testImport() - { - $this->setUpWorkflowOperationTest( - 'import', - ['https://example.com/myfile.tar.gz',], - 'do_migration', - ['url' => 'https://example.com/myfile.tar.gz',] - ); - } - - public function testImportFiles() - { - $this->setUpWorkflowOperationTest( - 'importFiles', - ['https://example.com/myfile.tar.gz',], - 'do_import', - [ - 'files' => 1, - 'url' => 'https://example.com/myfile.tar.gz', - ] - ); - } - - /** - * Exercises the initializeBindings function - */ - public function testInitializeBindings() - { - $live_copies_from = ['from_environment' => 'test',]; - $test_copies_from = ['from_environment' => 'dev',]; - - // Test environment, no message supplied - $this->setUpWorkflowOperationTest( - 'initializeBindings', - [], - 'create_environment', - [ - 'annotation' => 'Create the test environment', - 'clone_database' => $test_copies_from, - 'clone_files' => $test_copies_from, - ], - ['id' => 'test',] - ); - - // Live environment, no message supplied - $this->setUpWorkflowOperationTest( - 'initializeBindings', - [], - 'create_environment', - [ - 'annotation' => 'Create the live environment', - 'clone_database' => $live_copies_from, - 'clone_files' => $live_copies_from, - ], - ['id' => 'live',] - ); - - // Test environment, message supplied - $message_for_test = 'Fighting evil by moonlight'; - $this->setUpWorkflowOperationTest( - 'initializeBindings', - [['annotation' => $message_for_test,],], - 'create_environment', - [ - 'annotation' => $message_for_test, - 'clone_database' => $test_copies_from, - 'clone_files' => $test_copies_from, - ], - ['id' => 'test',] - ); - - // Live environment, message supplied - $message_for_live = 'Winning love by daylight'; - $this->setUpWorkflowOperationTest( - 'initializeBindings', - [['annotation' => $message_for_live,],], - 'create_environment', - [ - 'annotation' => $message_for_live, - 'clone_database' => $live_copies_from, - 'clone_files' => $live_copies_from, - ], - ['id' => 'live',] - ); - } - - public function testIsInitialized() - { - $commits = $this->getMockBuilder(Commits::class) - ->disableOriginalConstructor() - ->getMock(); - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $environments = $this->getMockBuilder(Environments::class) - ->disableOriginalConstructor() - ->getMock(); - $container->method('get')->willReturn($commits); - $environments->method('getSite')->with()->willReturn($this->site); - - $model = new Environment((object)['id' => 'neither test nor live',], ['collection' => $environments,]); - $this->assertTrue($model->isInitialized()); - - $model = new Environment((object)['id' => 'test',], ['collection' => $environments,]); - $model->setContainer($container); - $commits->expects($this->once()) - ->method('all') - ->willReturn([]); - $this->assertFalse($model->isInitialized()); - } - - public function testIsDevelopment() - { - $model = $this->createModel(['id' => 'test',]); - $this->assertFalse($model->isDevelopment()); - - $model = $this->createModel(['id' => 'live',]); - $this->assertFalse($model->isDevelopment()); - - $model = $this->createModel(['id' => 'mymulti',]); - $this->assertTrue($model->isDevelopment()); - - $model = $this->createModel(['id' => 'dev',]); - $this->assertTrue($model->isDevelopment()); - } - - public function testIsMultidev() - { - $this->assertFalse($this->model->isMultidev()); - - $model = $this->createModel(['id' => 'test',]); - $this->assertFalse($model->isMultidev()); - - $model = $this->createModel(['id' => 'live',]); - $this->assertFalse($model->isMultidev()); - - $model = $this->createModel(['id' => 'mymulti',]); - $this->assertTrue($model->isMultidev()); - } - - public function testMergeFromDev() - { - $this->setUpWorkflowOperationTest( - 'mergeFromDev', - [], - 'merge_dev_into_cloud_development_environment', - ['updatedb' => false,], - ['id' => 'mymulti',] - ); - - $this->setUpWorkflowOperationTest( - 'mergeFromDev', - [['updatedb' => true,],], - 'merge_dev_into_cloud_development_environment', - ['updatedb' => true,], - ['id' => 'mymulti',] - ); - - $this->setExpectedException(TerminusException::class, 'The dev environment is not a multidev environment'); - $model = $this->createModel(['id' => 'dev',]); - $model->mergeFromDev(); - } - - public function testMergeToDev() - { - - $this->setUpWorkflowOperationTest( - 'mergeToDev', - [], - 'merge_cloud_development_environment_into_dev', - ['updatedb' => false, 'from_environment' => null,] - ); - - $this->setUpWorkflowOperationTest( - 'mergeToDev', - [['updatedb' => true, 'from_environment' => 'mymulti',],], - 'merge_cloud_development_environment_into_dev', - ['updatedb' => true, 'from_environment' => 'mymulti',] - ); - - $this->setExpectedException( - TerminusException::class, - 'Environment::mergeToDev() may only be run on the dev environment.' - ); - $model = $this->createModel(['id' => 'stage',]); - $model->mergeToDev(); - } - - /** - * Tests the Environment::serialize() function when the environment is in Git mode - */ - public function testSerializeGitMode() - { - $info = [ - 'id' => 'dev', - 'environment_created' => '1479413982', - 'on_server_development' => false, - 'php_version' => '70', - 'dns_zone' => 'example.com', - ]; - $expected = [ - 'id' => 'dev', - 'created' => '1479413982', - 'domain' => 'dev-abc.example.com', - 'onserverdev' => false, - 'locked' => false, - 'initialized' => true, - 'connection_mode' => 'git', - 'php_version' => '7.0', - ]; - $this->lock->method('isLocked')->willReturn(false); - $this->configSet(['date_format' => 'Y-m-d',]); - - $model = $this->createModel($info); - $actual = $model->serialize(); - $this->assertEquals($expected, $actual); - } - - /** - * Tests the Environment::serialize() function when the environment is in SFTP mode - */ - public function testSerializeSFTPMode() - { - $info = [ - 'id' => 'dev', - 'environment_created' => '1479413982', - 'on_server_development' => true, - 'php_version' => '70', - 'dns_zone' => 'example.com', - ]; - $expected = [ - 'id' => 'dev', - 'created' => '1479413982', - 'domain' => 'dev-abc.example.com', - 'onserverdev' => true, - 'locked' => false, - 'initialized' => true, - 'connection_mode' => 'sftp', - 'php_version' => '7.0', - ]; - $this->lock->method('isLocked')->willReturn(false); - $this->configSet(['date_format' => 'Y-m-d',]); - - $model = $this->createModel($info); - $actual = $model->serialize(); - $this->assertEquals($expected, $actual); - } - - public function testSetHttpsCertificate() - { - $expected_params = [ - 'cert' => 'CERTIFICATE', - 'intermediary' => 'INTERMEDIARY', - ]; - $certificate = array_merge($expected_params, ['key' => null,]); - $this->model->getSite()->id = 'site id'; - $this->model->id = 'env id'; - $response = ['data' => (object)['some' => 'data',],]; - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("sites/{$this->model->getSite()->id}/environments/{$this->model->id}/add-ssl-cert"), - $this->equalTo(['method' => 'POST', 'form_params' => $expected_params,]) - ) - ->willReturn($response); - - $out = $this->model->setHttpsCertificate($certificate); - $this->assertEquals($this->workflow, $out); - } - - - public function testSftpConnectionInfo() - { - $actual = $this->model->sftpConnectionInfo(); - $expected = [ - 'username' => 'dev.abc', - 'host' => 'appserver.dev.abc.drush.in', - 'port' => '2222', - 'url' => 'sftp://dev.abc@appserver.dev.abc.drush.in:2222', - 'command' => 'sftp -o Port=2222 dev.abc@appserver.dev.abc.drush.in', - ]; - $this->assertEquals($expected, $actual); - } - - public function testSftpConnectionInfoHost() - { - $this->configSet(['host' => 'onebox', 'ssh_host' => null,]); - $actual = $this->model->sftpConnectionInfo(); - $expected = [ - 'username' => 'appserver.dev.abc', - 'host' => 'onebox', - 'port' => '2222', - 'url' => 'sftp://appserver.dev.abc@onebox:2222', - 'command' => 'sftp -o Port=2222 appserver.dev.abc@onebox', - ]; - $this->assertEquals($expected, $actual); - } - - public function testSftpConnectionInfoSSHHost() - { - $this->configSet(['ssh_host' => 'ssh.example.com',]); - $actual = $this->model->sftpConnectionInfo(); - $expected = [ - 'username' => 'appserver.dev.abc', - 'host' => 'ssh.example.com', - 'port' => '2222', - 'url' => 'sftp://appserver.dev.abc@ssh.example.com:2222', - 'command' => 'sftp -o Port=2222 appserver.dev.abc@ssh.example.com', - ]; - $this->assertEquals($expected, $actual); - } - - public function testWake() - { - $domain = $this->getMockBuilder(Domain::class) - ->disableOriginalConstructor() - ->getMock(); - $domain->id = 'domain.ext'; - $response = [ - 'status_code' => 200, - 'headers' => ['X-Pantheon-Styx-Hostname' => 'styx domain',] - ]; - $expected = [ - 'success' => true, - 'styx' => $response['headers']['X-Pantheon-Styx-Hostname'], - 'response' => $response, - 'target' => $domain->id, - ]; - - $this->domains->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$domain,]); - $domain->expects($this->once()) - ->method('get') - ->with('dns_zone_name') - ->willReturn('anything but null'); - - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo("http://{$domain->id}/pantheon_healthcheck")) - ->willReturn($response); - - $out = $this->model->wake(); - $this->assertEquals($expected, $out); - } - - public function testWipe() - { - $this->setUpWorkflowOperationTest( - 'wipe', - [], - 'wipe' - ); - } - - protected function createModel($params = ['id' => 'dev',]) - { - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->id = 'abc'; - $this->site->method('getName')->willReturn($this->site->id); - - $environments = new Environments(['site' => $this->site,]); - $model = new Environment((object)$params, ['collection' => $environments,]); - - $this->container = new Container(); - - $this->backups = $this->getMockBuilder(Backups::class) - ->disableOriginalConstructor() - ->getMock(); - $this->binding = $this->getMockBuilder(Binding::class) - ->disableOriginalConstructor() - ->getMock(); - $this->bindings = $this->getMockBuilder(Bindings::class) - ->disableOriginalConstructor() - ->getMock(); - $this->commits = $this->getMockBuilder(Commits::class) - ->disableOriginalConstructor() - ->getMock(); - $this->domains = $this->getMockBuilder(Domains::class) - ->disableOriginalConstructor() - ->getMock(); - $this->local_machine = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - $this->lock = $this->getMockBuilder(Lock::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream_status = $this->getMockBuilder(UpstreamStatus::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->container->add(Backups::class, $this->backups); - $this->container->add(Bindings::class, $this->bindings); - $this->container->add(Commits::class, $this->commits); - $this->container->add(Domains::class, $this->domains); - $this->container->add(LocalMachineHelper::class, $this->local_machine); - $this->container->add(Lock::class, $this->lock); - $this->container->add(UpstreamStatus::class, $this->upstream_status); - $this->container->add(Workflow::class, $this->workflow); - $this->container->add(Workflows::class, $this->workflows); - - $model->setContainer($this->container); - $model->setRequest($this->request); - $model->setConfig($this->config); - - return $model; - } - - protected function getCommits($commit_labels) - { - $commits = $this->getMockBuilder(Commits::class) - ->disableOriginalConstructor() - ->getMock(); - - $commits_array = []; - foreach ($commit_labels as $labels) { - $commit = $this->getMockBuilder(Commit::class) - ->disableOriginalConstructor() - ->getMock(); - $commit->method('get')->with('labels')->willReturn($labels); - $commits_array[] = $commit; - } - $commits->method('all') - ->willReturn($commits_array); - - return $commits; - } - - protected function getModelWithCommits($commit_labels) - { - $model = $this->createModel(['id' => 'live',]); - $environments = $this->getMockBuilder(Environments::class) - ->disableOriginalConstructor() - ->getMock(); - - $env = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $env->id = 'test'; - $environments->method('get') - ->with('test') - ->willReturn($env); - - $this->site->method('getEnvironments')->willReturn($environments); - - $env->method('getCommits')->willReturn($this->getCommits($commit_labels)); - return $model; - } - - protected function setUpTestGetParentEnvironment($id, $parent) - { - $model = $this->createModel(['id' => $id,]); - $environments = $this->getMockBuilder(Environments::class) - ->disableOriginalConstructor() - ->getMock(); - - $env = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $environments->expects($this->once()) - ->method('get') - ->with($parent) - ->willReturn($env); - - $this->site->method('getEnvironments')->willReturn($environments); - - $this->assertEquals($env, $model->getParentEnvironment()); - } - - protected function setUpWorkflowOperationTest( - $method, - $method_params, - $wf_name, - $wf_params = null, - $model_params = ['id' => 'dev',] - ) { - $model = $this->createModel($model_params); - - if ($wf_params) { - $this->workflows->expects($this->any()) - ->method('create') - ->with($wf_name, ['params' => $wf_params,]) - ->willReturn($this->workflow); - } else { - $this->workflows->expects($this->any()) - ->method('create') - ->with($wf_name) - ->willReturn($this->workflow); - } - - $wf = call_user_func_array([$model, $method,], $method_params); - $this->assertEquals($this->workflow, $wf); - } -} diff --git a/tests/unit_tests/Models/LockTest.php b/tests/unit_tests/Models/LockTest.php deleted file mode 100644 index ca151bcee..000000000 --- a/tests/unit_tests/Models/LockTest.php +++ /dev/null @@ -1,96 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->lock = $this->getLock(['locked' => false]); - } - - protected function getLock($attr) - { - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->method('getWorkflows')->willReturn($this->workflows); - - $lock = new Lock((object)$attr, ['environment' => $this->environment]); - return $lock; - } - - public function testEnable() - { - $params = ['username' => 'dev', 'password' => '123']; - $this->workflows->expects($this->once()) - ->method('create') - ->with('lock_environment', ['params' => $params]) - ->willReturn($this->workflow); - - $wf = $this->lock->enable($params); - $this->assertEquals($this->workflow, $wf); - } - - public function testIsLocked() - { - $this->assertFalse($this->lock->isLocked()); - - $lock = $this->getLock(['locked' => true, 'username' => 'abc', 'password' => '123']); - $this->assertTrue($lock->isLocked()); - } - - public function testSerialize() - { - $expected = [ - 'locked' => false, - 'username' => null, - 'password' => null, - ]; - $actual = $this->lock->serialize(); - $this->assertEquals($expected, $actual); - - $lock = $this->getLock(['locked' => true, 'username' => 'abc', 'password' => '123']); - $actual = $lock->serialize(); - $expected = [ - 'locked' => true, - 'username' => 'abc', - 'password' => '123', - ]; - $this->assertEquals($expected, $actual); - } - - public function testDisable() - { - $this->workflows->expects($this->once()) - ->method('create') - ->with('unlock_environment') - ->willReturn($this->workflow); - - $wf = $this->lock->disable(); - $this->assertEquals($this->workflow, $wf); - } -} diff --git a/tests/unit_tests/Models/MachineTokenTest.php b/tests/unit_tests/Models/MachineTokenTest.php deleted file mode 100644 index ffd2640cd..000000000 --- a/tests/unit_tests/Models/MachineTokenTest.php +++ /dev/null @@ -1,81 +0,0 @@ -collection = $this->getMockBuilder(MachineTokens::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new MachineToken((object)['id' => 'token_id',], ['collection' => $this->collection,]); - $this->model->setRequest($this->request); - } - - public function testDelete() - { - $user = $this->expectGetUser(); - $this->request->expects($this->once()) - ->method('request') - ->with("users/{$user->id}/machine_tokens/{$this->model->id}", ['method' => 'delete',]) - ->willReturn(['status_code' => 200,]); - - $out = $this->model->delete(); - $this->assertNull($out); - } - - public function testDeleteFail() - { - $user = $this->expectGetUser(); - $this->request->expects($this->once()) - ->method('request') - ->with("users/{$user->id}/machine_tokens/{$this->model->id}", ['method' => 'delete',]) - ->willReturn(['status_code' => 404,]); - - $this->setExpectedException(TerminusException::class); - - $out = $this->model->delete(); - $this->assertNull($out); - } - - /** - * Prepares the test case for the getUser() function. - * - * @return User The user object getUser() will return - */ - protected function expectGetUser() - { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = 'user ID'; - $this->collection->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - return $user; - } -} diff --git a/tests/unit_tests/Models/ModelTestCase.php b/tests/unit_tests/Models/ModelTestCase.php deleted file mode 100644 index fd9e9ebb3..000000000 --- a/tests/unit_tests/Models/ModelTestCase.php +++ /dev/null @@ -1,67 +0,0 @@ -config; - } - - /** - * @inheritdoc - */ - protected function setUp() - { - $this->config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request->method('getConfig')->willReturn($this->getConfig()); - } - - /** - * Set a mocked config param - * - * @param array $values An array of key/values - */ - protected function configSet($values) - { - $this->config->method('get')->will( - $this->returnCallback(function ($arg) use ($values) { - return isset($values[$arg]) ? $values[$arg] : null; - }) - ); - } -} diff --git a/tests/unit_tests/Models/NewRelicTest.php b/tests/unit_tests/Models/NewRelicTest.php deleted file mode 100644 index a6f7345c6..000000000 --- a/tests/unit_tests/Models/NewRelicTest.php +++ /dev/null @@ -1,146 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->method('getWorkflows')->willReturn($this->workflows); - $this->model = new NewRelic(null, ['site' => $this->site,]); - $this->model->setRequest($this->request); - $this->model->setConfig($this->config); - } - - /** - * Tests NewRelic::disable() - */ - public function testDisable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('disable_new_relic_for_site'), - $this->equalTo([ - 'site' => $this->site->id, - 'params' => [ - 'converge' => true, - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->disable(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests NewRelic::enable() - */ - public function testEnable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('enable_new_relic_for_site'), - $this->equalTo([ - 'site' => $this->site->id, - 'params' => [ - 'converge' => true, - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->enable(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests NewRelic::serialize() - */ - public function testSerialize() - { - $this->config->method('get')->with('date_format')->willReturn('Y-m-d H:i:s'); - $attributes = (object)[ - 'name' => 'site_name', - 'status' => 'new_relic_status', - 'subscription' => (object)['starts_on' => '1884/10/11',], - 'primary admin' => (object)['state' => 'new_relic_state',], - ]; - $desired_data = [ - 'name' => 'site_name', - 'status' => 'new_relic_status', - 'subscribed' => '1884-10-11 00:00:00', - 'state' => 'new_relic_state', - ]; - - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("sites/{$this->site->id}/new-relic"), - $this->equalTo(['options' => ['method' => 'get',],]) - ) - ->willReturn(['data' => $attributes,]); - - $data = $this->model->serialize(); - $this->assertEquals($desired_data, $data); - } - - /** - * Tests NewRelic::serialize() without a name - */ - public function testSerializeNoName() - { - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo("sites/{$this->site->id}/new-relic"), - $this->equalTo(['options' => ['method' => 'get',],]) - ) - ->willReturn(['data' => (object)[],]); - - $out = $this->model->serialize(); - $this->assertEquals([], $out); - } -} diff --git a/tests/unit_tests/Models/OrganizationSiteMembershipTest.php b/tests/unit_tests/Models/OrganizationSiteMembershipTest.php deleted file mode 100644 index 75749a7a1..000000000 --- a/tests/unit_tests/Models/OrganizationSiteMembershipTest.php +++ /dev/null @@ -1,137 +0,0 @@ -collection = $this->getMockBuilder(OrganizationSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site_data = ['id' => 'site id', 'name' => 'site name', 'label' => 'site label',]; - - $this->model = new OrganizationSiteMembership( - (object)['site' => $this->site_data, 'tags' => (object)[],], - ['collection' => $this->collection,] - ); - } - - /** - * Tests the UserSiteMemberships::__toString() function. - */ - public function testToString() - { - $org_name = 'org name'; - $organization = $this->expectGetOrganization(); - $organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($org_name); - - $this->assertEquals("{$organization->id}: $org_name", (string)$this->model); - } - - /** - * Tests the UserSiteMemberships::delete() function. - */ - public function testDelete() - { - $site_data = ['site_id' => '123',]; - $container = new Container(); - - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = $site_data['site_id']; - $container->add(Site::class, $site); - $container->add(Tags::class); - - $organization = $this->expectGetOrganization(); - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $organization->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($workflows); - $workflows->expects($this->once()) - ->method('create') - ->with( - 'remove_organization_site_membership', - ['params' => $site_data,] - ) - ->willReturn($workflow); - - $this->model->setContainer($container); - $out = $this->model->delete(); - $this->assertEquals($workflow, $out); - } - - /** - * Tests the UserSiteMemberships::getOrganization() function. - */ - public function testGetOrganization() - { - $organization = $this->expectGetOrganization(); - $this->assertEquals($organization, $this->model->getOrganization()); - } - - /** - * Prepares the test case for the getOrganization() function. - * - * @return Organization The organization object getOrganization() will return - */ - protected function expectGetOrganization() - { - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $organization->id = 'organization ID'; - $this->collection->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($organization); - return $organization; - } -} diff --git a/tests/unit_tests/Models/OrganizationTest.php b/tests/unit_tests/Models/OrganizationTest.php deleted file mode 100644 index 70f1a0da1..000000000 --- a/tests/unit_tests/Models/OrganizationTest.php +++ /dev/null @@ -1,263 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->profile = $this->getMockBuilder(Profile::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new Organization(); - $this->model->setContainer($this->container); - } - - /** - * Tests the Organization::getFeature() function - */ - public function testGetFeature() - { - $org_id = 'org id'; - $data = [ - 'change_management' => true, - 'multidev' => false, - ]; - - $this->request->expects($this->once()) - ->method('request') - ->with( - "organizations/$org_id/features", - [] - ) - ->willReturn(['data' => $data,]); - - $this->model->id = $org_id; - $this->model->setRequest($this->request); - - $this->assertTrue($this->model->getFeature('change_management')); - $this->assertFalse($this->model->getFeature('multidev')); - $this->assertNull($this->model->getFeature('invalid')); - } - - /** - * Tests the Organization::getLabel() function - */ - public function testGetLabel() - { - $org_label = 'Organization Label'; - $this->container->expects($this->once()) - ->method('get') - ->with(Profile::class) - ->willReturn($this->profile); - $this->profile->expects($this->once()) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($org_label); - - $this->assertEquals($org_label, $this->model->getLabel()); - } - - /** - * Tests the Organization::getName() function - */ - public function testGetName() - { - $org_name = 'org-name'; - $this->container->expects($this->once()) - ->method('get') - ->with(Profile::class) - ->willReturn($this->profile); - $this->profile->expects($this->once()) - ->method('get') - ->with($this->equalTo('machine_name')) - ->willReturn($org_name); - - $this->assertEquals($org_name, $this->model->getName()); - } - - - /** - * Tests the Organization::serialize() and Organization::getReferences() functions - */ - public function testGetReferences() - { - $name = 'organization-name'; - $label = 'Organization Label'; - $this->model->id = 'org id'; - $expected = ['id' => $this->model->id, 'name' => $name, 'label' => $label,]; - - $this->container->expects($this->once()) - ->method('get') - ->with(Profile::class) - ->willReturn($this->profile); - $this->profile->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('machine_name')) - ->willReturn($name); - $this->profile->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($label); - - $this->assertEquals($expected, $this->model->getReferences()); - } - - /** - * Tests the Organization::getSiteMemberships() function - */ - public function testGetSiteMemberships() - { - $org_site_memberships = $this->getMockBuilder(OrganizationSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(OrganizationSiteMemberships::class), - $this->equalTo([['organization' => $this->model,],]) - ) - ->willReturn($org_site_memberships); - - $this->assertEquals($org_site_memberships, $this->model->getSiteMemberships()); - } - - /** - * Tests the Organization::getUpstreams() function - */ - public function testGetUpstreams() - { - $upstreams = $this->getMockBuilder(OrganizationUpstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(OrganizationUpstreams::class), - $this->equalTo([['organization' => $this->model,],]) - ) - ->willReturn($upstreams); - - $this->assertEquals($upstreams, $this->model->getUpstreams()); - } - - /** - * Tests the Organization::getUserMemberships() function - */ - public function testGetUserMemberships() - { - $org_user_memberships = $this->getMockBuilder(OrganizationUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(OrganizationUserMemberships::class), - $this->equalTo([['organization' => $this->model,],]) - ) - ->willReturn($org_user_memberships); - - $this->assertEquals($org_user_memberships, $this->model->getUserMemberships()); - } - - /** - * Tests the Organization::getWorkflows() function - */ - public function testGetWorkflows() - { - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Workflows::class), - $this->equalTo([['organization' => $this->model,],]) - ) - ->willReturn($workflows); - - $this->assertEquals($workflows, $this->model->getWorkflows()); - } - - /** - * Tests the Organization::serialize() function - */ - public function testSerialize() - { - $name = 'organization-name'; - $label = 'Organization Label'; - $this->model->id = 'org id'; - $expected = ['id' => $this->model->id, 'name' => $name, 'label' => $label,]; - - $this->container->expects($this->once()) - ->method('get') - ->with(Profile::class) - ->willReturn($this->profile); - $this->profile->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('machine_name')) - ->willReturn($name); - $this->profile->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($label); - - $this->assertEquals($expected, $this->model->serialize()); - } - - /** - * Tests the Organization::__toString() function - */ - public function testToString() - { - $label = 'Organization Label'; - $this->model->id = 'org id'; - $expected = "{$this->model->id}: $label"; - - $this->container->expects($this->once()) - ->method('get') - ->with(Profile::class) - ->willReturn($this->profile); - $this->profile->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('name')) - ->willReturn($label); - - $this->assertEquals($expected, $this->model->__toString()); - } -} diff --git a/tests/unit_tests/Models/OrganizationUpstreamTest.php b/tests/unit_tests/Models/OrganizationUpstreamTest.php deleted file mode 100644 index 8854bd5bd..000000000 --- a/tests/unit_tests/Models/OrganizationUpstreamTest.php +++ /dev/null @@ -1,81 +0,0 @@ -data = [ - 'id' => 'upstream id', - 'label' => 'upstream label', - 'machine_name' => 'upstream machine name', - 'repository_url' => 'repository.url', - ]; - $this->collection = $this->getMockBuilder(OrganizationUpstreams::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new OrganizationUpstream((object)$this->data, ['collection' => $this->collection,]); - } - - /** - * Tests the OrganizationUpstream::getReferences() function - */ - public function testGetReferences() - { - $expected = $this->data; - unset($expected['repository_url']); - $this->assertEquals(array_values($expected), $this->model->getReferences()); - } - - /** - * Tests the OrganizationUpstream::serialize() function - */ - public function testSerialize() - { - $org_string = 'organization string'; - $expected = $this->data; - $expected['organization'] = $org_string; - - $this->collection->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($this->organization); - $this->organization->expects($this->once()) - ->method('getLabel') - ->with() - ->willReturn($org_string); - - $this->assertEquals($expected, $this->model->serialize()); - } -} diff --git a/tests/unit_tests/Models/OrganizationUserMembershipTest.php b/tests/unit_tests/Models/OrganizationUserMembershipTest.php deleted file mode 100644 index 0a88260a9..000000000 --- a/tests/unit_tests/Models/OrganizationUserMembershipTest.php +++ /dev/null @@ -1,233 +0,0 @@ -collection = $this->getMockBuilder(OrganizationUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_data = (object)['id' => 'user_id',]; - $this->role = 'role'; - $this->user_data = [ - 'id' => 'user ID', - 'profile' => (object)['firstname' => 'first name', 'lastname' => 'last name',], - 'email' => 'handle@domain.ext', - ]; - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new OrganizationUserMembership( - (object)['user' => $this->user_data, 'role' => $this->role,], - ['collection' => $this->collection,] - ); - } - - /** - * Tests the OrganizationUserMembership::delete() function - */ - public function testDelete() - { - $user = $this->expectGetUser(); - $organization = $this->expectGetOrganization(); - - $organization->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'remove_organization_user_membership', - ['params' => ['user_id' => $user->id,],] - ) - ->willReturn($this->workflow); - - $out = $this->model->delete(); - $this->assertEquals($this->workflow, $out); - } - - /** - * Tests the OrganizationUserMembership::getOrganization() function - */ - public function testGetOrganization() - { - $organization = $this->expectGetOrganization(); - $out = $this->model->getOrganization(); - $this->assertEquals($organization, $out); - } - - /** - * Tests the OrganizationUserMembership::getReferences() function. - */ - public function testGetReferences() - { - $user = $this->expectGetUser(); - $user->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($this->user_data); - - $out = $this->model->getReferences(); - $this->assertEquals(array_merge([$this->model->id,], $this->user_data), $out); - } - - /** - * Tests the OrganizationUserMembership::getUser() function - */ - public function testGetUser() - { - $user = $this->expectGetUser(); - $out = $this->model->getUser(); - $this->assertEquals($user, $out); - } - - /** - * Tests the OrganizationUserMembership::serialize() function - */ - public function testSerialize() - { - $user_data = [ - 'id' => $this->user_data['id'], - 'first_name' => $this->user_data['profile']->firstname, - 'last_name' => $this->user_data['profile']->lastname, - 'email' => $this->user_data['email'], - ]; - $expected = array_merge($user_data, ['role' => $this->role,]); - - $user = $this->expectGetUser(); - $user->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($user_data); - - $out = $this->model->serialize(); - $this->assertEquals($expected, $out); - } - - /** - * Tests the OrganizationUserMembership::setRole() function - */ - public function testSetRole() - { - $user = $this->expectGetUser(); - $organization = $this->expectGetOrganization(); - - $organization->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('update_organization_user_membership'), - $this->equalTo(['params' => ['user_id' => $user->id, 'role' => $this->role,],]) - ) - ->willReturn($this->workflow); - - $out = $this->model->setRole($this->role); - $this->assertEquals($this->workflow, $out); - } - - /** - * Prepares the test case for the getOrganization() function. - * - * @return Organization The organization object getOrganization() will return - */ - protected function expectGetOrganization() - { - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $organization->id = 'organization ID'; - $organization->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->collection->expects($this->once()) - ->method('getOrganization') - ->with() - ->willReturn($organization); - return $organization; - } - - /** - * Prepares the test case for the getUser() function. - * - * @return User The user object getUser() will return - */ - protected function expectGetUser() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = $this->user_data['id']; - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(User::class), - $this->equalTo([$this->user_data,]) - ) - ->willReturn($user); - - $this->model->setContainer($container); - return $user; - } -} diff --git a/tests/unit_tests/Models/PaymentMethodTest.php b/tests/unit_tests/Models/PaymentMethodTest.php deleted file mode 100644 index b4ec560e4..000000000 --- a/tests/unit_tests/Models/PaymentMethodTest.php +++ /dev/null @@ -1,28 +0,0 @@ - 'payment method uuid', - 'label' => 'HamEx - 1111', - ]; - $data['some_other_crap'] = 'a value'; - $payment_method = new PaymentMethod((object)$data); - $this->assertEquals($expected, $payment_method->serialize()); - } -} diff --git a/tests/unit_tests/Models/PlanTest.php b/tests/unit_tests/Models/PlanTest.php deleted file mode 100644 index 789625d2f..000000000 --- a/tests/unit_tests/Models/PlanTest.php +++ /dev/null @@ -1,215 +0,0 @@ -plans = $this->getMockBuilder(Plans::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data = [ - 'monthly_collection' => [ - 'attributes' => [ - 'billing_cycle' => 'monthly', - 'id' => 'monthly_id_collection', - 'plan_name' => 'Monthly Plan Name (from collection)', - 'plan_sku' => 'Monthly Plan SKU (from collection)', - 'price' => 100, - ], - ], - 'annual_collection' => [ - 'attributes' => [ - 'billing_cycle' => 'annual', - 'id' => 'annual_id_collection', - 'plan_name' => 'Annual Plan Name (from collection)', - 'plan_sku' => 'Annual Plan SKU (from collection)', - 'price' => 2400, - ], - ], - 'monthly_site' => [ - 'billing_cycle' => 'monthly', - 'id' => 'monthly_id_site', - 'name' => 'Monthly Plan Name (from site)', - 'price' => 300, - 'sku' => 'Monthly Plan SKU (from site)', - ], - 'annual_site' => [ - 'billing_cycle' => 'annual', - 'id' => 'annual_id_site', - 'name' => 'Annual Plan Name (from site)', - 'price' => 4800, - 'sku' => 'Annual Plan SKU (from site)', - ], - 'free' => [ - 'billing_cycle' => 'monthly', - 'id' => 'plan_no-cost', - 'name' => 'Free Plan', - 'price' => 0, - 'sku' => 'plan-free_is-no-cost', - ], - ]; - } - - /** - * Tests Plan::__construct() to ensure the variability of the plan data does not affect operation of the model - */ - public function testConstruct() - { - $data_from_collection = $this->data['monthly_collection']; - $this->assertEquals( - $data_from_collection['attributes']['plan_name'], - $this->makePlan($data_from_collection)->get('plan_name') - ); - - $data_from_site = $this->data['monthly_site']; - $this->assertEquals($data_from_site['name'], $this->makePlan($data_from_site)->get('name')); - } - - /** - * Tests Plan::getMonthlyPrice() - */ - public function testGetMonthlyPrice() - { - $annual_data = $this->data['annual_collection']; - $this->assertEquals( - ($annual_data['attributes']['price'] / 12), - $this->makePlan($annual_data)->getMonthlyPrice() - ); - - $monthly_data = $this->data['monthly_collection']; - $this->assertEquals($monthly_data['attributes']['price'], $this->makePlan($monthly_data)->getMonthlyPrice()); - } - - /** - * Tests Plan::getName() to ensure the variability of the plan data does not affect operation of the model - */ - public function testGetName() - { - $data_from_collection = $this->data['annual_collection']; - $this->assertEquals( - $data_from_collection['attributes']['plan_name'], - $this->makePlan($data_from_collection)->getName() - ); - - $data_from_site = $this->data['annual_site']; - $this->assertEquals($data_from_site['name'], $this->makePlan($data_from_site)->getName()); - } - - /** - * Tests Plan::getReferences() - */ - public function testGetReferences() - { - $data = $this->data['monthly_site']; - $this->assertEquals( - [$data['id'], $data['sku'],], - $this->makePlan($data)->getReferences() - ); - } - - /** - * Tests Plan::getSku() to ensure the variability of the plan data does not affect operation of the model - */ - public function testGetSku() - { - $data_from_collection = $this->data['annual_collection']; - $this->assertEquals( - $data_from_collection['attributes']['plan_sku'], - $this->makePlan($data_from_collection)->getSku() - ); - - $data_from_site = $this->data['annual_site']; - $this->assertEquals($data_from_site['sku'], $this->makePlan($data_from_site)->getSku()); - } - - /** - * Tests Plan::isAnnual() - */ - public function testIsAnnual() - { - $this->assertTrue($this->makePlan($this->data['annual_collection'])->isAnnual()); - $this->assertFalse($this->makePlan($this->data['monthly_collection'])->isAnnual()); - } - - /** - * Tests Plan::isFree() - */ - public function testIsFree() - { - $this->assertFalse($this->makePlan($this->data['annual_collection'])->isFree()); - $this->assertTrue($this->makePlan($this->data['free'])->isFree()); - } - - /** - * Tests Plan::isMonthly() - */ - public function testIsMonthly() - { - $this->assertFalse($this->makePlan($this->data['annual_collection'])->isMonthly()); - $this->assertTrue($this->makePlan($this->data['monthly_collection'])->isMonthly()); - } - - /** - * Tests Plan::serialize() - */ - public function testSerialize() - { - $this->config->expects($this->exactly(2)) - ->method('get') - ->with('monetary_format') - ->willReturn('$%01.2f'); - $data = $this->data['monthly_site']; - $formatted_price = '$3.00'; - $expected = [ - 'billing_cycle' => $data['billing_cycle'], - 'id' => $data['id'], - 'monthly_price' => $formatted_price, - 'name' => $data['name'], - 'price' => $formatted_price, - 'sku' => $data['sku'], - ]; - $this->assertEquals( - $expected, - $this->makePlan($data)->serialize() - ); - } - - /** - * @param array $attributes - * @return Plan - */ - protected function makePlan(array $attributes = []) - { - $model = new Plan((object)$attributes, ['collection' => $this->plans,'site' => $this->site,]); - $model->setConfig($this->config); - $model->setRequest($this->request); - return $model; - } -} diff --git a/tests/unit_tests/Models/RedisTest.php b/tests/unit_tests/Models/RedisTest.php deleted file mode 100644 index 836c17d67..000000000 --- a/tests/unit_tests/Models/RedisTest.php +++ /dev/null @@ -1,117 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->method('getWorkflows')->willReturn($this->workflows); - $this->model = new Redis(null, ['site' => $this->site,]); - $this->model->setRequest($this->request); - $this->model->setConfig($this->config); - } - - /** - * Tests Redis::clear() - */ - public function testClear() - { - $environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $environment->method('getWorkflows')->willReturn($workflows); - - $this->site->id = 'site_id'; - $environment->id = 'env_id'; - - $workflows->expects($this->once()) - ->method('create') - ->with('clear_redis_cache') - ->willReturn($workflow); - - $return_workflow = $this->model->clear($environment); - $this->assertEquals($workflow, $return_workflow); - } - - /** - * Tests Redis::disable() - */ - public function testDisable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('disable_addon'), - $this->equalTo([ - 'params' => [ - 'addon' => 'cacheserver', - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->disable(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Redis::enable() - */ - public function testEnable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('enable_addon'), - $this->equalTo([ - 'params' => [ - 'addon' => 'cacheserver', - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->enable(); - $this->assertEquals($workflow, $this->workflow); - } -} diff --git a/tests/unit_tests/Models/SSHKeyTest.php b/tests/unit_tests/Models/SSHKeyTest.php deleted file mode 100644 index 30f34ed4e..000000000 --- a/tests/unit_tests/Models/SSHKeyTest.php +++ /dev/null @@ -1,123 +0,0 @@ -collection = $this->getMockBuilder(SSHKeys::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user->id = 'user id'; - $this->key_data = (object)[ - 'id' => '1234567890abcdef', - 'key' => 'ssh-rsa AAAAB3xxx0uj+Q== dev@example.com' - ]; - - $this->collection->method('getUser')->willReturn($this->user); - - $this->model = new SSHKey($this->key_data, ['collection' => $this->collection,]); - $this->model->setRequest($this->request); - } - - public function testDelete() - { - $this->request->expects($this->once()) - ->method('request') - ->with("users/{$this->user->id}/keys/{$this->model->id}", ['method' => 'delete',]) - ->willReturn(['status_code' => 200,]); - - $out = $this->model->delete(); - $this->assertNull($out); - } - - public function testDeleteFail() - { - $this->request->expects($this->once()) - ->method('request') - ->with("users/{$this->user->id}/keys/{$this->model->id}", ['method' => 'delete',]) - ->willReturn(['status_code' => 404,]); - - $this->setExpectedException(TerminusException::class); - - $out = $this->model->delete(); - $this->assertNull($out); - } - - public function testGetCommentHex() - { - $this->assertEquals(substr($this->key_data->id, 0, 2), substr($this->model->getHex(), 0, 2)); - $key_split = explode(' ', $this->key_data->key); - $this->assertEquals(array_pop($key_split), $this->model->getComment()); - } - - public function testSerialize() - { - $keys = [ - '79e7e210bdf335bb8651a46b9a8417ab' => [ - 'id' => '79e7e210bdf335bb8651a46b9a8417ab', - 'key' => 'ssh-rsa xxxxxxx dev@foo.bar', - ], - '27a7a11ab9d2acbf91063410546ef980' => [ - 'id' => '27a7a11ab9d2acbf91063410546ef980', - 'key' => 'ssh-rsa yyyyyyy dev@baz.bar', - ] - ]; - $excpected = [ - '79e7e210bdf335bb8651a46b9a8417ab' => [ - 'id' => '79e7e210bdf335bb8651a46b9a8417ab', - 'hex' => '79:e7:e2:10:bd:f3:35:bb:86:51:a4:6b:9a:84:17:ab', - 'comment' => 'dev@foo.bar' - ], - '27a7a11ab9d2acbf91063410546ef980' => [ - 'id' => '27a7a11ab9d2acbf91063410546ef980', - 'hex' => '27:a7:a1:1a:b9:d2:ac:bf:91:06:34:10:54:6e:f9:80', - 'comment' => 'dev@baz.bar' - ] - ]; - - foreach ($keys as $i => $key_data) { - $sshkey = new SSHKey( - (object)$key_data, - ['collection' => $this->collection] - ); - $this->assertEquals($excpected[$i], $sshkey->serialize()); - } - } -} diff --git a/tests/unit_tests/Models/SavedTokenTest.php b/tests/unit_tests/Models/SavedTokenTest.php deleted file mode 100644 index 71cfac1e0..000000000 --- a/tests/unit_tests/Models/SavedTokenTest.php +++ /dev/null @@ -1,124 +0,0 @@ -data_store = $this->getMockBuilder(FileStore::class) - ->disableOriginalConstructor() - ->getMock(); - $this->token_data = (object)['email' => 'dev@example.com', 'token' => '123',]; - - $this->token = new SavedToken($this->token_data); - $this->token ->setDataStore($this->data_store); - } - - public function testConstruct() - { - $this->assertEquals('dev@example.com', $this->token->id); - } - - public function testLogIn() - { - $session_data = ['session' => '123', 'expires_at' => 12345]; - $this->request->expects($this->once()) - ->method('request') - ->with('authorize/machine-token', [ - 'form_params' => ['machine_token' => $this->token_data->token, 'client' => 'terminus',], - 'method' => 'post', - ]) - ->willReturn(['data' => (object)$session_data,]); - - $session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $session->expects($this->once()) - ->method('setData') - ->with($session_data); - - $user = new User(); - $session->expects($this->once()) - ->method('getUser') - ->willReturn($user); - - $this->token->setRequest($this->request); - $this->token->setSession($session); - $out = $this->token->logIn(); - $this->assertEquals($user, $out); - } - - public function testSaveToDir() - { - $this->data_store->expects($this->once()) - ->method('set') - ->with( - $this->token_data->email, - (object)[ - 'email' => $this->token_data->email, - 'id' => $this->token_data->email, - 'token' => $this->token_data->token, - 'date' => time() - ] - ); - - $this->token->saveToDir(); - } - - public function testDelete() - { - $this->data_store->expects($this->once()) - ->method('remove') - ->with($this->token_data->email); - - $this->token->delete(); - } - - public function testGetReferences() - { - $this->assertEquals([$this->token_data->email, $this->token_data->token,], $this->token->getReferences()); - } - - public function testInvalidID() - { - $this->token = new SavedToken((object)['email' => '', 'token' => $this->token_data->token,]); - $this->token ->setDataStore($this->data_store); - - $this->data_store->expects($this->never()) - ->method('remove'); - - $this->setExpectedException( - TerminusException::class, - 'Could not save the machine token because it is missing an ID' - ); - - $this->token->saveToDir(); - } -} diff --git a/tests/unit_tests/Models/SiteOrganizationMembershipTest.php b/tests/unit_tests/Models/SiteOrganizationMembershipTest.php deleted file mode 100644 index 11dc717d6..000000000 --- a/tests/unit_tests/Models/SiteOrganizationMembershipTest.php +++ /dev/null @@ -1,229 +0,0 @@ -collection = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_data = [ - 'id' => 'org id', - 'name' => 'org name', - 'label' => 'Org Name', - ]; - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - - $this->model = new SiteOrganizationMembership( - (object)['id' => 'model id', 'organization' => $this->org_data,], - ['collection' => (object)$this->collection,] - ); - } - - /** - * Tests the SiteOrganizationMemberships::delete() function - */ - public function testDelete() - { - $site = $this->expectGetSite(); - $site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('remove_site_organization_membership'), - $this->equalTo(['params' => ['organization_id' => $this->model->id,],]) - ) - ->willReturn($this->workflow); - - $out = $this->model->delete(); - $this->assertEquals($this->workflow, $out); - } - - /** - * Tests the SiteOrganizationMemberships::getOrganization() function - */ - public function testGetOrganization() - { - $organization = $this->expectGetOrganization(); - $out = $this->model->getOrganization(); - $this->assertEquals($organization, $out); - $this->assertEquals([$this->model,], $organization->memberships); - } - - /** - * Tests the SiteOrganizationMembership::getReferences() function. - */ - public function testGetReferences() - { - $organization = $this->expectGetOrganization(); - $organization->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($this->org_data); - - $out = $this->model->getReferences(); - $this->assertEquals(array_merge([$this->model->id,], $this->org_data), $out); - } - - /** - * Tests the SiteOrganizationMemberships::getSite() function - */ - public function testGetSite() - { - $site = $this->expectGetSite(); - $out = $this->model->getSite(); - $this->assertEquals($site, $out); - } - - /** - * Tests the SiteOrganizationMemberships::serialize() function - */ - public function testSerialize() - { - $site_name = 'site name'; - $organization = $this->expectGetOrganization(); - $site = $this->expectGetSite(); - $expected = [ - 'org_id' => $organization->id, - 'org_name' => $this->org_data['label'], - 'site_id' => $site->id, - 'site_name' => $site_name, - ]; - - $organization->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($this->org_data['label']); - $site->expects($this->once()) - ->method('getName') - ->with() - ->willReturn($site_name); - - $out = $this->model->serialize(); - $this->assertEquals($expected, $out); - } - - /** - * Tests the SiteOrganizationMemberships::setRole() function - */ - public function testSetRole() - { - $role = 'role'; - $site = $this->expectGetSite(); - - $site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('update_site_organization_membership'), - $this->equalTo(['params' => ['organization_id' => $this->model->id, 'role' => $role,],]) - ) - ->willReturn($this->workflow); - - $out = $this->model->setRole($role); - $this->assertEquals($this->workflow, $out); - } - - /** - * Prepares the test case for the getOrganization() function. - * - * @return Organization The organization object getOrganization() will return - */ - protected function expectGetOrganization() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $organization->id = $this->org_data['id']; - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Organization::class), - $this->equalTo([$this->org_data,]) - ) - ->willReturn($organization); - - $this->model->setContainer($container); - return $organization; - } - - /** - * Prepares the test case for the getSite() function. - * - * @return Site The site object getSite() will return - */ - protected function expectGetSite() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site ID'; - $this->collection->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($site); - return $site; - } -} diff --git a/tests/unit_tests/Models/SiteTest.php b/tests/unit_tests/Models/SiteTest.php deleted file mode 100644 index 4bc17fd75..000000000 --- a/tests/unit_tests/Models/SiteTest.php +++ /dev/null @@ -1,629 +0,0 @@ -branches = $this->getMockBuilder(Branches::class) - ->disableOriginalConstructor() - ->getMock(); - $this->branches = $this->getMockBuilder(Branches::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = new Container(); - $this->environments = $this->getMockBuilder(Environments::class) - ->disableOriginalConstructor() - ->getMock(); - $this->new_relic = $this->getMockBuilder(NewRelic::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_memberships = $this->getMockBuilder(SiteOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->plan = $this->getMockBuilder(Plan::class) - ->disableOriginalConstructor() - ->getMock(); - $this->plans = $this->getMockBuilder(Plans::class) - ->disableOriginalConstructor() - ->getMock(); - $this->redis = $this->getMockBuilder(Redis::class) - ->disableOriginalConstructor() - ->getMock(); - $this->solr = $this->getMockBuilder(Solr::class) - ->disableOriginalConstructor() - ->getMock(); - $this->upstream = $this->getMockBuilder(SiteUpstream::class) - ->disableOriginalConstructor() - ->getMock(); - $this->user_memberships = $this->getMockBuilder(SiteUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->site_data = (object)['id' => 'site id', 'name' => 'my-site', 'label' => 'My Site',]; - - $this->container->add(Branches::class, $this->branches); - $this->container->add(Environments::class, $this->environments); - $this->container->add(SiteOrganizationMemberships::class, $this->org_memberships); - $this->container->add(NewRelic::class, $this->new_relic); - $this->container->add(Plan::class, $this->plan); - $this->container->add(Plans::class, $this->plans); - $this->container->add(Redis::class, $this->redis); - $this->container->add(SiteUserMemberships::class, $this->user_memberships); - $this->container->add(Solr::class, $this->solr); - $this->container->add(SiteUpstream::class, $this->upstream); - $this->container->add(Workflows::class, $this->workflows); - - $this->model = new Site($this->site_data); - - $this->model->setContainer($this->container); - $this->model->setRequest($this->request); - $this->model->setConfig($this->config); - } - - /** - * Tests Site::addPaymentMethod($payment_method_id) - */ - public function testAddPaymentMethod() - { - $payment_method_id = 'payment_method_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('associate_site_instrument'), - $this->equalTo( - [ - 'site' => $this->model->id, - 'params' => ['instrument_id' => $payment_method_id,], - ] - ) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->addPaymentMethod($payment_method_id); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::completeMigration() - */ - public function testCompleteMigration() - { - $this->workflows->expects($this->once()) - ->method('create') - ->with($this->equalTo('complete_migration')) - ->willReturn($this->workflow); - - $workflow = $this->model->completeMigration(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::dashboardUrl() - */ - public function testDashboardUrl() - { - $this->configSet(['dashboard_protocol' => 'https', 'dashboard_host' => 'dashboard.pantheon.io',]); - $this->assertEquals( - "https://dashboard.pantheon.io/sites/" . $this->site_data->id, - $this->model->dashboardUrl() - ); - } - - /** - * Tests Site::delete() - */ - public function testDelete() - { - $this->workflows->expects($this->once()) - ->method('create') - ->with() - ->willReturn($this->workflow); - - $out = $this->model->delete(); - $this->assertEquals($this->workflow, $out); - } - - /** - * Tests Site::deployProduct($upstream_id) - */ - public function testDeployProduct() - { - $upstream_id = 'upstream_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('deploy_product'), - $this->equalTo(['params' => ['product_id' => $upstream_id,],]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->deployProduct($upstream_id); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::deployProduct($upstream_id) - */ - public function testSetUpstream() - { - $upstream_id = 'upstream_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('switch_upstream'), - $this->equalTo(['params' => ['upstream_id' => $upstream_id,],]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->setUpstream($upstream_id); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::fetch($options) - */ - public function testFetch() - { - $data = [ - 'id' => $this->model->id, - 'upstream' => (object)['id' => 'upstream_id',], - 'dummy_attribute' => 'dummy_value', - ]; - - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo("sites/{$this->model->id}?site_state=true")) - ->willReturn(compact('data')); - - $fetched_site = $this->model->fetch(); - $this->assertEquals($fetched_site, $this->model); - $this->assertEquals($this->model->get('dummy_attribute'), $data['dummy_attribute']); - } - - /** - * Tests Site::getBranches() - */ - public function testGetBranches() - { - $branches = $this->model->getBranches(); - $this->assertEquals($this->branches, $branches); - } - - /** - * Tests Site::getEnvironments() - */ - public function testGetEnvironments() - { - $environments = $this->model->getEnvironments(); - $this->assertEquals($this->environments, $environments); - } - - /** - * Tests Site::getEnvironments() - */ - public function testUnsetEnvironments() - { - $container = $this->getMockBuilder(Container::class) - ->setMethods(['get']) - ->getMock(); - - $model = new Site($this->site_data); - - $model->setContainer($container); - $model->setRequest($this->request); - $model->setConfig($this->config); - - // We can call 'getEnvironments()' as many times as we like; - // it will not be re-fetched from the container until after - // unsetEnvironments() is called. - $container->expects($this->exactly(2)) - ->method('get') - ->with( - $this->equalTo(Environments::class), - $this->equalTo([['site' => $model,],]) - ) - ->willReturn($this->environments); - - // First call fetches from container - $environments = $model->getEnvironments(); - - // Does not fetch from container - $environments = $model->getEnvironments(); - - // Erases Site::$environments - $model->unsetEnvironments(); - - // Re-fetches environments from container - $environments = $model->getEnvironments(); - - // Does not fetch from container - $environments = $model->getEnvironments(); - } - - /** - * Tests Site::getFeature($feature) - */ - public function testGetFeature() - { - $key = 'dummy_feature'; - $data = (object)[$key => 'dummy_value',]; - - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo("sites/{$this->model->id}/features")) - ->willReturn(compact('data')); - - $feature_value = $this->model->getFeature($key); - $this->assertEquals($feature_value, $data->$key); - } - - /** - * Tests Site::getFeature($feature) when the asked-for feature is not present - */ - public function testGetFeatureDNE() - { - $data = (object)[]; - - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo("sites/{$this->model->id}/features")) - ->willReturn(compact('data')); - - $feature_value = $this->model->getFeature('invalid_key'); - $this->assertNull($feature_value); - } - - /** - * Tests Site::getName() - */ - public function testGetName() - { - $this->assertEquals($this->site_data->name, $this->model->getName()); - } - - /** - * Tests Site::getOrganizationMemberships() and OrganizationsTrait::getOrgMemberships() - */ - public function testGetOrganizationMemberships() - { - $this->assertEquals($this->org_memberships, $this->model->getOrganizationMemberships()); - } - - /** - * Tests Site::getPlan() - */ - public function testGetPlan() - { - $plan = $this->model->getPlan(); - $this->assertEquals($this->plan, $plan); - } - - /** - * Tests Site::getPlans() - */ - public function testGetPlans() - { - $plans = $this->model->getPlans(); - $this->assertEquals($this->plans, $plans); - } - - /** - * Tests Site::getReferences() - */ - public function testGetReferences() - { - $this->assertEquals(array_values((array)$this->site_data), $this->model->getReferences()); - } - - /** - * Tests Site::getNewRelic() - */ - public function testGetNewRelic() - { - $new_relic = $this->model->getNewRelic(); - $this->assertEquals($this->new_relic, $new_relic); - } - - /** - * Tests Site::getRedis() - */ - public function testGetRedis() - { - $redis = $this->model->getRedis(); - $this->assertEquals($this->redis, $redis); - } - - /** - * Tests Site::getSolr() - */ - public function testGetSolr() - { - $solr = $this->model->getSolr(); - $this->assertEquals($this->solr, $solr); - } - - /** - * Tests Site::getUserMemberships() - */ - public function testGetUserMemberships() - { - $user_memberships = $this->model->getUserMemberships(); - $this->assertEquals($this->user_memberships, $user_memberships); - } - - /** - * Tests Site::isFrozen() - */ - public function testIsFrozen() - { - $frozen = $this->model->isFrozen(); - $this->assertEquals(false, $frozen); - - $this->model->set('frozen', null); - $frozen = $this->model->isFrozen(); - $this->assertEquals(false, $frozen); - - $this->model->set('frozen', true); - $frozen = $this->model->isFrozen(); - $this->assertEquals(true, $frozen); - - $this->model->set('frozen', 'yes'); - $frozen = $this->model->isFrozen(); - $this->assertEquals(true, $frozen); - } - - /** - * Tests Site::removePaymentMethod() - */ - public function testRemovePaymentMethod() - { - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('disassociate_site_instrument'), - $this->equalTo(['site' => $this->model->id,]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->removePaymentMethod(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::serialize() - */ - public function testSerialize() - { - $this->configSet(['date_format' => 'Y-m-d H:i:s',]); - $this->model->tags = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model->memberships = ['membership1', 'membership2',]; - $tags = ['tag1', 'tag2',]; - $data = (object)[ - 'id' => $this->model->id, - 'name' => 'site name', - 'label' => 'site label', - 'created' => '682641540', - 'framework' => 'framework name', - 'organization' => 'organization name', - 'plan_name' => 'plan name', - 'holder_type' => 'holder type', - 'holder_id' => 'holder id', - 'owner' => 'owner id', - 'frozen' => 'yes', - 'last_frozen_at' => '1682641540', - ]; - $expected_data = [ - 'id' => $this->model->id, - 'name' => 'site name', - 'label' => 'site label', - 'created' => '682641540', - 'framework' => 'framework name', - 'organization' => 'organization name', - 'plan_name' => 'plan name', - 'upstream' => '***UPSTREAM***', - 'holder_type' => 'holder type', - 'holder_id' => 'holder id', - 'owner' => 'owner id', - 'frozen' => true, - 'memberships' => implode(',', $this->model->memberships), - 'tags' => implode(',', $tags), - 'max_num_cdes' => 0, - 'last_frozen_at' => '1682641540', - 'region' => null, - ]; - - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo("sites/{$this->model->id}?site_state=true")) - ->willReturn(compact('data')); - $this->upstream->method('__toString')->willReturn('***UPSTREAM***'); - $this->model->tags->expects($this->once()) - ->method('ids') - ->with() - ->willReturn($tags); - $this->model->setConfig($this->config); - - $returned_data = $this->model->fetch()->serialize(); - $this->assertEquals($expected_data, $returned_data); - } - - /** - * Tests Site::setOwner($user_id) - */ - public function testSetOwner() - { - $user_id = 'user_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('promote_site_user_to_owner'), - $this->equalTo(['params' => compact('user_id'),]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->setOwner($user_id); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Site::setUpstream($attributes) when there is upstream info in the constructor attributes - */ - public function testSetUpstreamFromConstructorAttr() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $attributes = (object)[ - 'id' => 'site_id', - 'product' => (object)['id' => 'product id',], - 'upstream' => (object)['product_id' => 'product id',], - ]; - $site = new Site($attributes); - $site->setContainer($container); - $upstream = $this->getMockBuilder(SiteUpstream::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(SiteUpstream::class), - $this->equalTo([ - (object)array_merge((array)$attributes->product, (array)$attributes->upstream), - compact('site'), - ]) - ) - ->willReturn($upstream); - - $out = $site->getUpstream(); - $this->assertEquals($upstream, $out); - } - - /** - * Tests Site::setUpstream($attributes) when there is upstream info in the constructor attributes' settings property - */ - public function testSetUpstreamFromConstructorAttrSettings() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $attributes = (object)[ - 'id' => 'site_id', - 'settings' => (object)['upstream' => (object)['product_id' => 'product id',],], - ]; - $site = new Site($attributes); - $site->setContainer($container); - $upstream = $this->getMockBuilder(SiteUpstream::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(SiteUpstream::class), - $this->equalTo([$attributes->settings->upstream, compact('site'),]) - ) - ->willReturn($upstream); - - $out = $site->getUpstream(); - $this->assertEquals($upstream, $out); - } -} diff --git a/tests/unit_tests/Models/SiteUpstreamTest.php b/tests/unit_tests/Models/SiteUpstreamTest.php deleted file mode 100644 index d0f12f10d..000000000 --- a/tests/unit_tests/Models/SiteUpstreamTest.php +++ /dev/null @@ -1,138 +0,0 @@ - 'upstream id', - ]; - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - - $site->expects($this->once()) - ->method('getWorkflows') - ->with() - ->willReturn($workflows); - $workflows->expects($this->once()) - ->method('create') - ->with('clear_code_cache') - ->willReturn($workflow); - - $model = new SiteUpstream((object)$data); - $model->setSite($site); - - $this->assertEquals($workflow, $model->clearCache()); - } - - /** - * Tests the Upstream::parseAttributes() function when the data has neither an ID nor a product ID - */ - public function testParseAttributesWithoutIDAndWithoutProductID() - { - $data = [ - 'repository_url' => 'repository.url', - 'repository_branch' => 'repo branch', - 'type' => 'custom', - ]; - $model = new SiteUpstream((object)$data); - $this->assertNull($model->id); - } - - /** - * Tests the Upstream::parseAttributes() function when the data has no ID but has a product ID - */ - public function testParseAttributesWithoutIDButWithProductID() - { - $data = [ - 'product_id' => 'upstream id', - 'repository_url' => 'repository.url', - 'repository_branch' => 'repo branch', - 'type' => 'custom', - ]; - $model = new SiteUpstream((object)$data); - $this->assertEquals($data['product_id'], $model->id); - } - - /** - * Tests the Upstream::parseAttributes() function when the data has an ID and no product ID - */ - public function testParseAttributesWithoutProductIDButWithID() - { - $data = [ - 'id' => 'upstream id', - 'repository_url' => 'repository.url', - 'repository_branch' => 'repo branch', - 'type' => 'custom', - ]; - $model = new SiteUpstream((object)$data); - $this->assertEquals($data['id'], $model->id); - } - - /** - * Tests the Upstream::parseAttributes() function when the data has both an ID and a Product ID - */ - public function testParseAttributesWithIDAndProductID() - { - $data = [ - 'id' => 'upstream id', - 'product_id' => 'product id', - 'repository_url' => 'repository.url', - 'repository_branch' => 'repo branch', - 'type' => 'custom', - ]; - $model = new SiteUpstream((object)$data); - $this->assertEquals($data['id'], $model->id); - } - - /** - * Tests the Upstream::serialize() function - */ - public function testSerialize() - { - $data = $expected = [ - 'product_id' => 'upstream id', - 'url' => 'repository.url', - 'branch' => 'repo branch', - ]; - $model = new SiteUpstream((object)$data); - $this->assertEquals($expected, $model->serialize()); - } - - /** - * Tests the Upstream::__toString() function - */ - public function testToString() - { - $data = [ - 'product_id' => 'upstream id', - 'url' => 'repository.url', - ]; - $expected = $data['product_id'] . ': ' . $data['url']; - $model = new SiteUpstream((object)$data); - $this->assertEquals($expected, $model->__toString()); - } -} diff --git a/tests/unit_tests/Models/SiteUserMembershipTest.php b/tests/unit_tests/Models/SiteUserMembershipTest.php deleted file mode 100644 index 8560d5bd4..000000000 --- a/tests/unit_tests/Models/SiteUserMembershipTest.php +++ /dev/null @@ -1,228 +0,0 @@ -user_data = [ - 'id' => 'abc', - 'firstname' => 'Daisy', - 'lastname' => 'Duck', - 'email' => 'daisy@duck.com', - ]; - $this->role = 'role'; - $this->collection = $this->getMockBuilder(SiteUserMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->model = new SiteUserMembership( - (object)['user' => $this->user_data, 'role' => $this->role,], - ['collection' => $this->collection,] - ); - } - - /** - * Tests the SiteUserMembership::delete() function. - */ - public function testDelete() - { - $user = $this->expectGetUser(); - $this->expectGetSite(); - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'remove_site_user_membership', - ['params' => ['user_id' => $user->id,],] - ) - ->willReturn($this->workflow); - - $out = $this->model->delete(); - $this->assertEquals($this->workflow, $out); - } - - /** - * Tests the SiteUserMembership::getReferences() function. - */ - public function testGetReferences() - { - $user = $this->expectGetUser(); - $user->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($this->user_data); - - $out = $this->model->getReferences(); - $this->assertEquals(array_merge([$this->model->id,], $this->user_data), $out); - } - - /** - * Tests the SiteUserMembership::isOwner() function when the user is not the site owner. - */ - public function testIsNotOwner() - { - $site = $this->expectGetSite(); - $this->expectGetUser(); - - $site->expects($this->once()) - ->method('get') - ->with('owner') - ->willReturn('nope'); - $this->assertFalse($this->model->isOwner()); - } - - /** - * Tests the SiteUserMembership::isOwner() function when the user is the site owner. - */ - public function testIsOwner() - { - $site = $this->expectGetSite(); - $user = $this->expectGetUser(); - - $site->expects($this->once()) - ->method('get') - ->with('owner') - ->willReturn($user->id); - $this->assertTrue($this->model->isOwner()); - } - - /** - * Tests the SiteUserMembership::serialize() function. - */ - public function testSerialize() - { - $site = $this->expectGetSite(); - $user = $this->expectGetUser(); - - $site->expects($this->once()) - ->method('get') - ->with('owner') - ->willReturn($user->id); - $user->expects($this->once()) - ->method('serialize') - ->with() - ->willReturn($this->user_data); - $expected = array_merge($this->user_data, ['is_owner' => true, 'role' => $this->role,]); - $out = $this->model->serialize(); - $this->assertEquals($expected, $out); - } - - /** - * Tests the SiteUserMembership::setRole() function. - */ - public function testSetRole() - { - $user = $this->expectGetUser(); - $this->expectGetSite(); - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - 'update_site_user_membership', - ['params' => ['user_id' => $user->id, 'role' => $this->role,],] - ) - ->willReturn($this->workflow); - - $out = $this->model->setRole($this->role); - $this->assertEquals($this->workflow, $out); - } - - /** - * Prepares the test case for the getSite() function. - * - * @return Site The site object getSite() will return - */ - protected function expectGetSite() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site ID'; - $site->method('getWorkflows') - ->with() - ->willReturn($this->workflows); - $this->collection->expects($this->once()) - ->method('getSite') - ->with() - ->willReturn($site); - return $site; - } - - /** - * Prepares the test case for the getUser() function. - * - * @return User The user object getUser() will return - */ - protected function expectGetUser() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = $this->user_data['id']; - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(User::class), - $this->equalTo([$this->user_data,]) - ) - ->willReturn($user); - - $this->model->setContainer($container); - return $user; - } -} diff --git a/tests/unit_tests/Models/SolrTest.php b/tests/unit_tests/Models/SolrTest.php deleted file mode 100644 index 0f9ac6e5e..000000000 --- a/tests/unit_tests/Models/SolrTest.php +++ /dev/null @@ -1,86 +0,0 @@ -workflow = $this->getMockBuilder(Workflow::class) - ->disableOriginalConstructor() - ->getMock(); - $this->workflows = $this->getMockBuilder(Workflows::class) - ->disableOriginalConstructor() - ->setMethods(['create']) - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site->method('getWorkflows')->willReturn($this->workflows); - $this->model = new Solr(null, ['site' => $this->site,]); - $this->model->setConfig($this->config); - } - - /** - * Tests Solr::disable() - */ - public function testDisable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('disable_addon'), - $this->equalTo([ - 'params' => [ - 'addon' => 'indexserver', - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->disable(); - $this->assertEquals($workflow, $this->workflow); - } - - /** - * Tests Solr::enable() - */ - public function testEnable() - { - $this->site->id = 'site_id'; - - $this->workflows->expects($this->once()) - ->method('create') - ->with( - $this->equalTo('enable_addon'), - $this->equalTo([ - 'params' => [ - 'addon' => 'indexserver', - ], - ]) - ) - ->willReturn($this->workflow); - - $workflow = $this->model->enable(); - $this->assertEquals($workflow, $this->workflow); - } -} diff --git a/tests/unit_tests/Models/TagTest.php b/tests/unit_tests/Models/TagTest.php deleted file mode 100644 index 5561c687e..000000000 --- a/tests/unit_tests/Models/TagTest.php +++ /dev/null @@ -1,80 +0,0 @@ -collection = $this->getMockBuilder(Tags::class) - ->disableOriginalConstructor() - ->getMock(); - $this->organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $org_site_membership = $this->getMockBuilder(OrganizationSiteMembership::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->collection->method('getMembership')->willReturn($org_site_membership); - $org_site_membership->method('getSite')->willReturn($this->site); - $org_site_membership->method('getOrganization')->willReturn($this->organization); - - $this->model = new Tag(null, ['collection' => $this->collection,]); - $this->model->setRequest($this->request); - } - - - /** - * Tests Tag::delete() - */ - public function testDelete() - { - $this->model->id = 'tag_id'; - $this->site->id = 'site_uuid'; - $this->organization->id = 'org_uuid'; - $this->request->expects($this->once()) - ->method('request') - ->with( - $this->equalTo('organizations/org_uuid/tags/tag_id/sites?entity=site_uuid'), - $this->equalTo(['method' => 'delete',]) - ); - $this->model->delete(); - } -} diff --git a/tests/unit_tests/Models/TerminusModelTest.php b/tests/unit_tests/Models/TerminusModelTest.php deleted file mode 100644 index ddeaa1f9d..000000000 --- a/tests/unit_tests/Models/TerminusModelTest.php +++ /dev/null @@ -1,53 +0,0 @@ -getMockForAbstractClass(TerminusModel::class, [(object)['id' => '123', 'foo' => 'bar']]); - - $this->assertEquals('123', $model->id); - $this->assertTrue($model->has('foo')); - $this->assertEquals('bar', $model->get('foo')); - $this->assertFalse($model->has('baz')); - $model->set('baz', 'abc'); - $this->assertTrue($model->has('baz')); - $this->assertEquals('abc', $model->get('baz')); - $this->assertEquals('bar', $model->get('foo')); - } - - /** - * Tests TerminusModel::fetch() - */ - public function testFetch() - { - $model = $this->getMockBuilder(TerminusModel::class) - ->setMethods(['getUrl']) - ->disableOriginalConstructor() - ->getMock(); - $model->expects($this->once()) - ->method('getUrl') - ->willReturn('TESTURL'); - - $this->request->expects($this->once()) - ->method('request') - ->with('TESTURL', ['options' => ['method' => 'get',], 'foo' => 'bar']) - ->willReturn(['data' => ['baz' => '123']]); - - $model->setRequest($this->request); - - $model->fetch(['foo' => 'bar']); - } -} diff --git a/tests/unit_tests/Models/UpstreamStatusTest.php b/tests/unit_tests/Models/UpstreamStatusTest.php deleted file mode 100644 index 22fcbe926..000000000 --- a/tests/unit_tests/Models/UpstreamStatusTest.php +++ /dev/null @@ -1,216 +0,0 @@ -environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $this->environment->id = 'environment id'; - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $site->id = 'site id'; - $base_branch = "refs/heads/{$this->environment->id}"; - $this->request_url = "sites/{$site->id}/code-upstream-updates?base_branch=$base_branch"; - $this->environment->method('getSite')->willReturn($site); - - $this->environment->expects($this->once()) - ->method('getBranchName') - ->with() - ->willReturn($this->environment->id); - - $this->model = new UpstreamStatus(null, ['environment' => $this->environment,]); - $this->model->setRequest($this->request); - } - - /** - * Tests UpstreamStatus::getStatus() when the status is current - */ - public function testGetStatusCurrent() - { - $this->expectIsCurrent(); - $this->assertEquals('current', $this->model->getStatus()); - } - - /** - * Tests UpstreamStatus::getStatus() when the status is current because there's no code - */ - public function testGetStatusCurrentBecauseNoCode() - { - $this->expectRequest((object)['has_code' => false,]); - $this->assertEquals('current', $this->model->getStatus()); - } - - /** - * Tests UpstreamStatus::getStatus() when the status is outdated - */ - public function testGetStatusOutdated() - { - $this->expectIsBehind(); - $this->assertEquals('outdated', $this->model->getStatus()); - } - - /** - * Tests UpstreamStatus::getUpdates() - */ - public function testGetUpdates() - { - $expected = 'return me'; - $this->expectRequest($expected); - $out = $this->model->getUpdates(); - $this->assertEquals($expected, $out); - } - - /** - * Tests UpstreamStatus::hasUpdates() when there are no updates and the environment is test or live - */ - public function testHasNoUpdates() - { - $parent_environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $parent_environment->id = 'test'; - - $return_data = (object)[ - 'has_code' => true, - $this->environment->id => (object)['is_up_to_date_with_upstream' => true,], - $parent_environment->id => (object)['is_up_to_date_with_upstream' => true,], - ]; - $this->expectIsDevelopment(false); - $this->expectRequest($return_data); - $this->environment->method('getParentEnvironment')->willReturn($parent_environment); - - $this->assertFalse($this->model->hasUpdates()); - } - - /** - * Tests UpstreamStatus::hasUpdates() when there are updates and the environment is test or live and the named env is outdated - */ - public function testHasUpdates() - { - $return_data = (object)[ - 'has_code' => true, - $this->environment->id => (object)['is_up_to_date_with_upstream' => false,], - 'test' => (object)['is_up_to_date_with_upstream' => true,], - ]; - $this->expectIsDevelopment(false); - $this->expectRequest($return_data); - $this->assertTrue($this->model->hasUpdates()); - } - - /** - * Tests UpstreamStatus::hasUpdates() when there are updates and the environment is test or live and the named env's parent is outdated - */ - public function testHasUpdatesFromParent() - { - $parent_environment = $this->getMockBuilder(Environment::class) - ->disableOriginalConstructor() - ->getMock(); - $parent_environment->id = 'test'; - - $return_data = (object)[ - 'has_code' => true, - $this->environment->id => (object)['is_up_to_date_with_upstream' => true,], - $parent_environment->id => (object)['is_up_to_date_with_upstream' => false,], - ]; - $this->expectIsDevelopment(false); - $this->expectRequest($return_data); - - $this->environment->method('getParentEnvironment')->willReturn($parent_environment); - - $this->assertTrue($this->model->hasUpdates()); - } - - /** - * Tests UpstreamStatus::hasUpdates() when there are no updates and the environment is a dev environment - */ - public function testHasNoUpdatesDev() - { - $this->expectIsCurrent(); - $this->assertFalse($this->model->hasUpdates()); - } - - /** - * Tests UpstreamStatus::hasUpdates() when there are updates and the environment is a dev environment - */ - public function testHasUpdatesDev() - { - $this->expectIsBehind(); - $this->assertTrue($this->model->hasUpdates()); - } - - /** - * Sets the test to expect a result saying that the dev environment is behind on updates - */ - private function expectIsBehind() - { - $this->expectIsDevelopment(); - $this->expectRequest((object)['behind' => 1, 'has_code' => true,]); - } - - /** - * Sets the test to expect a result saying that the dev environment is current on updates - */ - private function expectIsCurrent() - { - $this->expectIsDevelopment(); - $this->expectRequest((object)['behind' => 0, 'has_code' => true,]); - } - - /** - * Sets the test to expect a call to isDevelopment with the set return value - * - * @param boolean - */ - private function expectIsDevelopment($is_dev = true) - { - $this->environment->expects($this->once()) - ->method('isDevelopment') - ->with() - ->willReturn($is_dev); - } - - /** - * Sets the test to expect a request with specific returned data - * - * @param mixed - */ - private function expectRequest($return_data = null) - { - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo($this->request_url)) - ->willReturn(['data' => $return_data,]); - } -} diff --git a/tests/unit_tests/Models/UpstreamTest.php b/tests/unit_tests/Models/UpstreamTest.php deleted file mode 100644 index 973e72939..000000000 --- a/tests/unit_tests/Models/UpstreamTest.php +++ /dev/null @@ -1,47 +0,0 @@ - 'upstream id', - 'product_id' => 'also an upstream id', - 'label' => 'upstream label', - 'machine_name' => 'upstream machine name', - ]; - - $model = new Upstream((object)$data); - $this->assertEquals(array_values($data), $model->getReferences()); - } - - /** - * Tests the Upstream::serialize() function - */ - public function testSerialize() - { - $data = $expected = [ - 'repository_url' => 'repository.url', - 'label' => 'upstream label', - 'machine_name' => 'upstream machine name', - 'id' => 'id', - 'key' => 'value', - ]; - $expected['organization'] = null; - $model = new Upstream((object)$data); - $this->assertEquals($expected, $model->serialize()); - } -} diff --git a/tests/unit_tests/Models/UserOrganizationMembershipTest.php b/tests/unit_tests/Models/UserOrganizationMembershipTest.php deleted file mode 100644 index ef51bb0e7..000000000 --- a/tests/unit_tests/Models/UserOrganizationMembershipTest.php +++ /dev/null @@ -1,133 +0,0 @@ -collection = $this->getMockBuilder(UserOrganizationMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->org_data = [ - 'id' => 'org id', - 'name' => 'org name', - ]; - - $this->model = new UserOrganizationMembership( - (object)['organization' => $this->org_data,], - ['collection' => (object)$this->collection,] - ); - } - - /** - * Tests the UserOrganizationMemberships::getOrganization() function - */ - public function testGetOrganization() - { - $organization = $this->expectGetOrganization(); - $out = $this->model->getOrganization(); - $this->assertEquals($organization, $out); - $this->assertEquals([$this->model,], $organization->memberships); - } - - /** - * Tests the SiteOrganizationMembership::getReferences() function. - */ - public function testGetReferences() - { - $organization = $this->expectGetOrganization(); - $organization->expects($this->once()) - ->method('getReferences') - ->with() - ->willReturn($this->org_data); - - $out = $this->model->getReferences(); - $this->assertEquals(array_merge([$this->model->id,], $this->org_data), $out); - } - - /** - * Tests the UserOrganizationMemberships::getUser() function - */ - public function testGetUser() - { - $user = $this->expectGetUser(); - $out = $this->model->getUser(); - $this->assertEquals($user, $out); - } - - /** - * Prepares the test case for the getOrganization() function. - * - * @return Organization The organization object getOrganization() will return - */ - protected function expectGetOrganization() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $organization = $this->getMockBuilder(Organization::class) - ->disableOriginalConstructor() - ->getMock(); - $organization->id = $this->org_data['id']; - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Organization::class), - $this->equalTo([$this->org_data,]) - ) - ->willReturn($organization); - - $this->model->setContainer($container); - return $organization; - } - - /** - * Prepares the test case for the getUser() function. - * - * @return User The user object getUser() will return - */ - protected function expectGetUser() - { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = 'user ID'; - $this->collection->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - return $user; - } -} diff --git a/tests/unit_tests/Models/UserSiteMembershipTest.php b/tests/unit_tests/Models/UserSiteMembershipTest.php deleted file mode 100644 index c7b633032..000000000 --- a/tests/unit_tests/Models/UserSiteMembershipTest.php +++ /dev/null @@ -1,113 +0,0 @@ -collection = $this->getMockBuilder(UserSiteMemberships::class) - ->disableOriginalConstructor() - ->getMock(); - $this->site_data = [ - 'id' => 'site id', - 'name' => 'site name', - 'label' => 'Site Label', - ]; - - $this->model = new UserSiteMembership( - (object)['site' => $this->site_data, 'id' => 'model id',], - ['collection' => (object)$this->collection,] - ); - } - - /** - * Tests the UserSiteMemberships::__toString() function - */ - public function testToString() - { - $user = $this->expectGetUser(); - $out = (string)$this->model; - $this->assertEquals("{$user->id}: Team", $out); - } - - /** - * Tests the UserSiteMemberships::getUser() function - */ - public function testGetUser() - { - $user = $this->expectGetUser(); - $out = $this->model->getUser(); - $this->assertEquals($user, $out); - } - - /** - * Prepares the test case for the getSite() function. - * - * @return Site The site object getSite() will return - */ - protected function expectGetSite() - { - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Site::class), - $this->equalTo([$this->site_data,]) - ) - ->willReturn($site); - - $this->model->setContainer($container); - return $site; - } - - /** - * Prepares the test case for the getUser() function. - * - * @return User The user object getUser() will return - */ - protected function expectGetUser() - { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor() - ->getMock(); - $user->id = 'user ID'; - $this->collection->expects($this->once()) - ->method('getUser') - ->with() - ->willReturn($user); - return $user; - } -} diff --git a/tests/unit_tests/Models/UserTest.php b/tests/unit_tests/Models/UserTest.php deleted file mode 100644 index 356b9dc1b..000000000 --- a/tests/unit_tests/Models/UserTest.php +++ /dev/null @@ -1,216 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->profile = $this->getMockBuilder(Profile::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->user_data = [ - 'id' => '123', - 'email' => 'dev@example.com', - 'profile' => (object)[ - 'firstname' => 'Peter', - 'lastname' => 'Pantheor', - 'full_name' => 'Peter Pantheor', - ], - ]; - $this->model = new User((object)$this->user_data); - $this->model->setRequest($this->request); - $this->model->setContainer($this->container); - } - - /** - * Tests the User::dashboardUrl() function - */ - public function testDashboardUrl() - { - $config = $this->getMockBuilder(Config::class) - ->disableOriginalConstructor() - ->getMock(); - - $config->expects($this->exactly(2)) - ->method('get') - ->withConsecutive( - $this->equalTo('dashboard_protocol'), - $this->equalTo('dashboard_host') - ) - ->willReturnOnConsecutiveCalls( - 'https', - 'dashboard.pantheon.io' - ); - $this->model->setConfig($config); - - $this->assertEquals( - "https://dashboard.pantheon.io/users/{$this->user_data['id']}#sites", - $this->model->dashboardUrl() - ); - } - - /** - * Tests the User::getAliases() function - */ - public function testGetAliases() - { - $aliases = ['foo', 'bar',]; - $this->request->expects($this->once()) - ->method('request') - ->with("users/123/drush_aliases", ['method' => 'get',]) - ->willReturn(['data' => (object)['drush_aliases' => $aliases,],]); - - $out = $this->model->getAliases(); - $this->assertEquals($aliases, $out); - // Confirm that it returns the same output twice without calling to the API twice. - $this->assertEquals($aliases, $this->model->getAliases()); - } - - /** - * Tests the User::getName() function - */ - public function testGetName() - { - $user_name = 'User Name'; - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Profile::class), - $this->equalTo([$this->user_data['profile'],]) - ) - ->willReturn($this->profile); - $this->profile->expects($this->once()) - ->method('get') - ->with($this->equalTo('full_name')) - ->willReturn($user_name); - - $this->assertEquals($user_name, $this->model->getName()); - } - - /** - * Tests the User::getReferences() function - */ - public function testGetReferences() - { - $data = $this->user_data; - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Profile::class), - $this->equalTo([$this->user_data['profile'],]) - ) - ->willReturn($this->profile); - $this->profile->expects($this->once()) - ->method('get') - ->with($this->equalTo('full_name')) - ->willReturn($data['profile']->full_name); - - $this->assertEquals([$data['id'], $data['profile']->full_name, $data['email'],], $this->model->getReferences()); - } - - /** - * Tests various User::get*() function - */ - public function testGetSubCollections() - { - $classes = [ - PaymentMethods::class, - MachineTokens::class, - UserOrganizationMemberships::class, - UserSiteMemberships::class, - SSHKeys::class, - Upstreams::class, - Workflows::class - ]; - foreach ($classes as $i => $class) { - $this->container->expects($this->at($i)) - ->method('get') - ->with($class, [['user' => $this->model,],]) - ->willReturn(new $class(['user' => $this->model,])); - } - - $this->model->getPaymentMethods(); - $this->model->getMachineTokens(); - $this->model->getOrganizationMemberships(); - $this->model->getSiteMemberships(); - $this->model->getSSHKeys(); - $this->model->getUpstreams(); - $this->model->getWorkflows(); - } - - /** - * Tests the User::serialize() function - */ - public function testSerialize() - { - $data = $this->user_data; - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(Profile::class), - $this->equalTo([$this->user_data['profile'],]) - ) - ->willReturn($this->profile); - $this->profile->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('firstname')) - ->willReturn($data['profile']->firstname); - $this->profile->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('lastname')) - ->willReturn($data['profile']->lastname); - - $expected = [ - 'firstname' => $data['profile']->firstname, - 'lastname' => $data['profile']->lastname, - 'email' => $data['email'], - 'id' => $data['id'], - ]; - - $this->assertEquals($expected, $this->model->serialize()); - } -} diff --git a/tests/unit_tests/Models/WorkflowOperationTest.php b/tests/unit_tests/Models/WorkflowOperationTest.php deleted file mode 100644 index ac8977f1a..000000000 --- a/tests/unit_tests/Models/WorkflowOperationTest.php +++ /dev/null @@ -1,66 +0,0 @@ - 'Dumbo Drop', 'run_time' => 1.2345,]); - $this->assertEquals('Operation: Dumbo Drop finished in 1s', $wfop->description()); - - $wfop2 = new WorkflowOperation((object)['description' => 'Dumbo Drop',]); - $this->assertEquals('Operation: Dumbo Drop finished in ', $wfop2->description()); - } - - /** - * Tests the WorkflowOperation::serialize() function - */ - public function testSerialize() - { - $data = [ - 'id' => '123', - 'description' => 'Dumbo Drop', - 'run_time' => 1.2345, - 'type' => 'platform', - 'result' => 'success', - 'log_output' => 'The operation was a total success', - 'other' => 'something else', - ]; - $wfop = new WorkflowOperation((object)$data); - - $data['duration'] = '1s'; - unset($data['other']); - unset($data['run_time']); - $this->assertEquals($data, $wfop->serialize()); - } - - /** - * Tests the WorflowOperation::__toString() function - */ - public function testToString() - { - $data = [ - 'description' => 'Dumbo Drop', - 'run_time' => 1.2345, - 'log_output' => 'The operation was a total success', - 'environment' => 'multidev', - ]; - $wfop = new WorkflowOperation((object)$data); - - $this->assertEquals( - "------ Operation: Dumbo Drop finished in 1s (multidev) ------\nThe operation was a total success", - (string)$wfop - ); - } -} diff --git a/tests/unit_tests/Models/WorkflowTest.php b/tests/unit_tests/Models/WorkflowTest.php deleted file mode 100644 index d197ba155..000000000 --- a/tests/unit_tests/Models/WorkflowTest.php +++ /dev/null @@ -1,358 +0,0 @@ - 'workflow_id',]; - - $site = new Site((object)['id' => 'site_id',]); - $environments = new Environments(['site' => $site,]); - $env = new Environment((object)['id' => 'env_id',], ['collection' => $environments,]); - $user = new User((object)['id' => 'user_id',]); - $org = new Organization((object)['id' => 'org_id',]); - - $workflow = new Workflow((object)$data, ['environment' => $env,]); - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'sites/site_id/workflows/workflow_id', - ['options' => ['method' => 'get',], 'query' => ['hydrate' => 'operations_with_logs',],] - )->willReturn(['data' => ['baz' => '123',],]); - $workflow->setRequest($this->request); - $workflow->fetchWithLogs(); - - $workflow = new Workflow((object)$data, ['site' => $site,]); - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'sites/site_id/workflows/workflow_id', - ['options' => ['method' => 'get',], 'query' => ['hydrate' => 'operations_with_logs',],] - )->willReturn(['data' => ['baz' => '123',],]); - $workflow->setRequest($this->request); - $workflow->fetchWithLogs(); - - $workflow = new Workflow((object)$data, ['user' => $user,]); - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'users/user_id/workflows/workflow_id', - ['options' => ['method' => 'get',], 'query' => ['hydrate' => 'operations_with_logs',],] - )->willReturn(['data' => ['baz' => '123',],]); - $workflow->setRequest($this->request); - $workflow->fetchWithLogs(); - - $session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $session->expects($this->once()) - ->method('getUser') - ->willReturn($user); - $workflow = new Workflow((object)$data, ['organization' => $org,]); - $this->request->expects($this->at(0)) - ->method('request') - ->with( - 'users/user_id/organizations/org_id/workflows/workflow_id', - ['options' => ['method' => 'get',], 'query' => ['hydrate' => 'operations_with_logs',],] - )->willReturn(['data' => ['baz' => '123',],]); - $workflow->setSession($session); - $workflow->setRequest($this->request); - $workflow->fetchWithLogs(); - } - - /** - * Tests the Workflow::getMessage() function when the workflow has not succeeded - */ - public function testGetMessageUnsuccessful() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow_id = 'workflow id'; - $active_description = 'active description'; - $final_task = (object)[ - 'messages' => ['message' => (object)['message' => ['message'],],], - ]; - $workflow = new Workflow((object)[ - 'id' => $workflow_id, - 'final_task' => $final_task, - 'result' => 'not success', - 'active_description' => $active_description, - ], ['site' => $site,]); - - $out = $workflow->getMessage(); - $this->assertEquals(print_r($final_task->messages['message']->message, true), $out); - } - - /** - * Tests the Workflow::getMessage() function when the workflow has not succeeded and has a reason - */ - public function testGetMessageUnsuccessfulWithReason() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow_id = 'workflow id'; - $active_description = 'active description'; - $final_task = (object)[ - 'messages' => ['message' => (object)['message' => ['message'],],], - 'reason' => 'reason', - ]; - $workflow = new Workflow((object)[ - 'id' => $workflow_id, - 'final_task' => $final_task, - 'result' => 'not success', - 'active_description' => $active_description, - ], ['site' => $site,]); - - $out = $workflow->getMessage(); - $this->assertEquals($final_task->reason, $out); - } - - /** - * Tests the Workflow::getMessage() function when the workflow has succeeded - */ - public function testGetMessageSuccess() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow_id = 'workflow id'; - $active_description = 'active description'; - $final_task = (object)[ - 'messages' => ['message' => (object)['message' => ['message'],],], - ]; - $workflow = new Workflow((object)[ - 'id' => $workflow_id, - 'final_task' => $final_task, - 'result' => 'succeeded', - 'active_description' => $active_description, - ], ['site' => $site,]); - - $out = $workflow->getMessage(); - $this->assertEquals($active_description, $out); - } - - /** - * Tests the Workflow::getOperations() function - */ - public function testGetOperations() - { - $operations = [ - (object)['type' => 'Type', 'result' => 'Result', 'duration' => 'Duration', 'description' => 'Description'], - (object)['type' => 'Art', 'result' => 'Ergebnis', 'duration' => 'Dauer', 'description' => 'Beschreibung'], - (object)[ - 'type' => 'Taipkaan', - 'result' => 'Keputusan', - 'duration' => 'Tempoh', - 'description' => 'Penerangan', - ], - (object)['type' => 'tipe', 'result' => 'gevolg', 'duration' => 'duur', 'description' => 'beskrywing'], - (object)['type' => 'Turi', 'result' => 'Natija', 'duration' => 'Muddati', 'description' => 'Ta\'rif'], - ]; - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $wf_operations = $this->getMockBuilder(WorkflowOperations::class) - ->disableOriginalConstructor() - ->getMock(); - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with(WorkflowOperations::class, [['data' => $operations,]]) - ->willReturn($wf_operations); - - $workflow = new Workflow((object)['id' => '123', 'operations' => $operations,], ['site' => $site,]); - $workflow->setContainer($container); - - $this->assertEquals($wf_operations, $workflow->getOperations()); - } - - /** - * Tests the Workflow::getUrl() function when accessed multiple times - */ - public function testGetUrlDuplicate() - { - $data = ['id' => 'workflow_id',]; - $site = new Site((object)['id' => 'site_id',]); - $environments = new Environments(['site' => $site,]); - $env = new Environment((object)['id' => 'env_id',], ['collection' => $environments,]); - - $workflow = new Workflow((object)$data, ['environment' => $env,]); - $url = $workflow->getUrl(); - $this->assertEquals($url, $workflow->getUrl()); - } - - /** - * Tests the Workflow::operations() function - * @deprecated 1.5.1-dev - */ - public function testOperations() - { - $operations = [ - (object)['type' => 'Type', 'result' => 'Result', 'duration' => 'Duration', 'description' => 'Description'], - (object)['type' => 'Art', 'result' => 'Ergebnis', 'duration' => 'Dauer', 'description' => 'Beschreibung'], - (object)[ - 'type' => 'Taipkaan', - 'result' => 'Keputusan', - 'duration' => 'Tempoh', - 'description' => 'Penerangan', - ], - (object)['type' => 'tipe', 'result' => 'gevolg', 'duration' => 'duur', 'description' => 'beskrywing'], - (object)['type' => 'Turi', 'result' => 'Natija', 'duration' => 'Muddati', 'description' => 'Ta\'rif'], - ]; - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $wf_operations = $this->getMockBuilder(WorkflowOperations::class) - ->disableOriginalConstructor() - ->getMock(); - $wf_operation = $this->getMockBuilder(WorkflowOperation::class) - ->disableOriginalConstructor() - ->getMock(); - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with(WorkflowOperations::class, [['data' => $operations,]]) - ->willReturn($wf_operations); - $wf_operations->expects($this->once()) - ->method('all') - ->with() - ->willReturn([$wf_operation, $wf_operation,]); - - $workflow = new Workflow((object)['id' => '123', 'operations' => $operations,], ['site' => $site,]); - $workflow->setContainer($container); - - $this->assertEquals([$wf_operation, $wf_operation,], $workflow->operations()); - } - - /** - * Tests the Workflow::serialize() function - */ - public function testSerialize() - { - $workflow_description = 'workflow description'; - $env = 'some env'; - $email = 'handle@domain.ext'; - $workflow_id = 'workflow id'; - $status = 'succeeded'; - $operations = [ - (object)['type' => 'Type', 'result' => 'Result', 'duration' => 'Duration', 'description' => 'Description'], - (object)['type' => 'Art', 'result' => 'Ergebnis', 'duration' => 'Dauer', 'description' => 'Beschreibung'], - (object)[ - 'type' => 'Taipkaan', - 'result' => 'Keputusan', - 'duration' => 'Tempoh', - 'description' => 'Penerangan', - ], - (object)['type' => 'tipe', 'result' => 'gevolg', 'duration' => 'duur', 'description' => 'beskrywing'], - (object)['type' => 'Turi', 'result' => 'Natija', 'duration' => 'Muddati', 'description' => 'Ta\'rif'], - ]; - $operations_serialized = [ - ['type' => 'Type', 'result' => 'Result', 'duration' => 'Duration', 'description' => 'Description'], - ['type' => 'Art', 'result' => 'Ergebnis', 'duration' => 'Dauer', 'description' => 'Beschreibung'], - ['type' => 'Taipkaan', 'result' => 'Keputusan', 'duration' => 'Tempoh', 'description' => 'Penerangan'], - ['type' => 'tipe', 'result' => 'gevolg', 'duration' => 'duur', 'description' => 'beskrywing'], - ['type' => 'Turi', 'result' => 'Natija', 'duration' => 'Muddati', 'description' => 'Ta\'rif'], - ]; - $data = (object)[ - 'id' => $workflow_id, - 'description' => $workflow_description, - 'environment' => $env, - 'result' => $status, - 'created_at' => 0, - 'finished_at' => 1, - 'started_at' => 0, - 'user' => (object)compact('email'), - 'operations' => $operations, - ]; - $expected = [ - 'id' => $workflow_id, - 'env' => $env, - 'workflow' => $workflow_description, - 'user' => $email, - 'status' => $status, - 'finished_at' => 1, - 'started_at' => 0, - 'time' => time() . 's', - 'operations' => $operations_serialized, - ]; - - - $container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $wf_operations = $this->getMockBuilder(WorkflowOperations::class) - ->disableOriginalConstructor() - ->getMock(); - - $container->expects($this->once()) - ->method('get') - ->with(WorkflowOperations::class, [['data' => $operations,]]) - ->willReturn($wf_operations); - $wf_operations->expects($this->once()) - ->method('serialize') - ->willReturn($operations_serialized); - - $workflow = new Workflow($data, compact('site')); - $workflow->setContainer($container); - $workflow->setConfig($this->config); - - $this->assertEquals($expected, $workflow->serialize()); - } - - /** - * Tests the Workflow::status() functions - */ - public function testStatus() - { - $site = $this->getMockBuilder(Site::class) - ->disableOriginalConstructor() - ->getMock(); - $workflow = new Workflow(['id' => '123',], ['site' => $site,]); - $this->assertEquals('running', $workflow->getStatus()); - $this->assertEquals(false, $workflow->isSuccessful()); - $this->assertEquals(false, $workflow->isFinished()); - - $workflow->set('result', 'succeeded'); - $this->assertEquals('succeeded', $workflow->getStatus()); - $this->assertEquals(true, $workflow->isSuccessful()); - $this->assertEquals(true, $workflow->isFinished()); - - $workflow->set('result', 'failed'); - $this->assertEquals('failed', $workflow->getStatus()); - $this->assertEquals(false, $workflow->isSuccessful()); - $this->assertEquals(true, $workflow->isFinished()); - } -} diff --git a/tests/unit_tests/Plugins/PluginAutoloadTest.php b/tests/unit_tests/Plugins/PluginAutoloadTest.php deleted file mode 100644 index fa341306a..000000000 --- a/tests/unit_tests/Plugins/PluginAutoloadTest.php +++ /dev/null @@ -1,153 +0,0 @@ -logger = $this->getMockBuilder(NullLogger::class) - ->setMethods(['warning','debug']) - ->getMock(); - $this->plugins_dir = dirname(dirname(__DIR__)) . '/fixtures/autoload/plugins/'; - - $this->autoload = new PluginAutoloadDependencies($this->findTerminusSrcDir()); - $this->autoload->setLogger($this->logger); - } - - public function testDirectMethodCalls() - { - $path = $this->plugins_dir . 'with-autoload/src/Commands/OptionalCommandGroup/NullCommand.php'; - $plugin_dir = $this->callProtected($this->autoload, 'findPluginBaseDir', [$path]); - $this->assertEquals($this->plugins_dir . 'with-autoload', $plugin_dir); - $autoload_file = $this->callProtected($this->autoload, 'checkAutoloadPath', [$plugin_dir]); - $this->assertEquals($this->plugins_dir . 'with-autoload/vendor/autoload.php', $autoload_file); - - $autoload_file_again = $this->callProtected($this->autoload, 'findAutoloadFile', [$path]); - $this->assertEquals($this->plugins_dir . 'with-autoload/vendor/autoload.php', $autoload_file_again); - } - - public static function autoloadTestValues() - { - return [ - [ - 'invalid-no-composer-json', - 'src/NullCommand.php', - null, - ], - [ - 'with-autoload', - 'src/Commands/OptionalCommandGroup/NullCommand.php', - 'vendor/autoload.php', - ], - [ - 'with-dependencies', - 'src/Commands/OptionalCommandGroup/NullCommand.php', - 'vendor/autoload.php', - ], - ]; - } - - /** - * @dataProvider autoloadTestValues - */ - public function testAutoload($plugin_path, $commandfile, $expected) - { - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $this->markTestIncomplete("Plugins not supported on Windows yet."); - } - - $plugin_path = $this->plugins_dir . $plugin_path; - $path = "$plugin_path/$commandfile"; - if (!empty($expected)) { - $expected = "$plugin_path/$expected"; - } - $actual = $this->callProtected($this->autoload, 'findAutoloadFile', [$path]); - $this->assertEquals($expected, $actual); - } - - /** - * Test to see what happens when we try to validate a plugin when - * the Terminus installation folder is missing composer.json &/or composer.lock. - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage Could not load Terminus composer data. - */ - public function testMissingTerminusComposerData() - { - $path = $this->plugins_dir . 'with-dependencies/src/Commands/OptionalCommandGroup/NullCommand.php'; - $misconfigured = new PluginAutoloadDependencies(__DIR__); - $actual = $this->callProtected($misconfigured, 'findAutoloadFile', [$path]); - $this->assertEquals("Never reached -- above call will throw.", $actual); - } - - /** - * Test to see what happens when we try to validate a plugin that - * directly requires a component already (indirectly) provided by Terminus. - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage The plugin org/conflicting-dependencies-plugin requires the project consolidation/log, which is already provided by Terminus. Please remove this dependency from the plugin by running 'composer remove consolidation/log' in the org/conflicting-dependencies-plugin plugin directory. - */ - public function testPluginWithConflictingDependency() - { - $path = $this->plugins_dir . 'conflicting-dependencies/src/Commands/OptionalCommandGroup/NullCommand.php'; - $actual = $this->callProtected($this->autoload, 'findAutoloadFile', [$path]); - $this->assertEquals("Never reached -- above call will throw.", $actual); - } - - /** - * Test to see what happens when we try to validate a plugin that - * indirectly requires a component already provided by Terminus. - * - * @expectedException \Pantheon\Terminus\Exceptions\TerminusException - * @expectedExceptionMessage The plugin org/nested-dependencies-plugin has installed the project consolidation/log: 1.0.0, but Terminus has installed - */ - public function testPluginWithConflictingNestedDependency() - { - $path = $this->plugins_dir . 'nested-dependencies/src/Commands/OptionalCommandGroup/NullCommand.php'; - $actual = $this->callProtected($this->autoload, 'findAutoloadFile', [$path]); - $this->assertEquals("Never reached -- above call will throw.", $actual); - } - - public function callProtected($object, $method, $args = []) - { - $r = new \ReflectionMethod($object, $method); - $r->setAccessible(true); - return $r->invokeArgs($object, $args); - } - - /** - * Determine whether the provided path is inside Terminus itself. - */ - protected function findTerminusSrcDir() - { - // The Terminus class is located at the root of our 'src' - // directory. Get the path to the class to determine - // whether or not the path we are testing is inside this - // same directory. - $terminus_class = new \ReflectionClass(\Pantheon\Terminus\Terminus::class); - return dirname($terminus_class->getFileName()); - } -} diff --git a/tests/unit_tests/Plugins/PluginDiscoveryTest.php b/tests/unit_tests/Plugins/PluginDiscoveryTest.php deleted file mode 100644 index bf8daee0e..000000000 --- a/tests/unit_tests/Plugins/PluginDiscoveryTest.php +++ /dev/null @@ -1,126 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->logger = $this->getMockBuilder(NullLogger::class) - ->setMethods(['warning',]) - ->getMock(); - $this->plugins_dir = dirname(dirname(__DIR__)) . '/fixtures/plugins/'; - - $this->discovery = new PluginDiscovery($this->plugins_dir); - $this->discovery->setLogger($this->logger); - } - - /** - * Tests the PluginDiscovery::discover() function - */ - public function testDiscover() - { - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $this->markTestIncomplete("Plugins not supported on Windows yet."); - } - - $invalid_paths = [ - 'invalid-compat-versionless-composer' => - 'The composer.json must contain a "compatible-version" field in "extras/terminus"', - 'invalid-composer-json' => 'The file "{path}/composer.json" does not contain valid JSON', - 'invalid-composer-namespace' => - 'The namespace "{namespace}" in the composer.json autoload psr-4 section must end with a ' - . 'namespace separator. Should be "{correct}"', - 'invalid-extraless-composer' => 'The composer.json must contain a "terminus" section in "extras"', - 'invalid-no-composer-json' => 'The file "{path}/composer.json" does not exist', - 'invalid-wrong-composer-type' => - 'The composer.json must contain a "type" attribute with the value "terminus-plugin"', - ]; - $valid_paths = [ - 'without-namespace', - 'with-namespace', - ]; - - $log = 0; - foreach ($invalid_paths as $path => $msg) { - $path = $this->plugins_dir . $path; - $this->logger->expects($this->at($log++)) - ->method('warning') - ->with('Plugin Discovery: Ignoring directory {dir} because: {msg}.'); - } - - $pluginList = $this->discovery->discover(); - $actual = $this->composeActualCommandFileDirectories($pluginList); - $expected = $this->composeExpectedCommandFileDirectories($valid_paths, $this->plugins_dir); - $reverse_expected = $this->composeExpectedCommandFileDirectories($valid_paths, $this->plugins_dir, true); - $this->assertTrue(($expected == $actual) || ($reverse_expected == $actual)); - } - - public function testDiscoverFailDirDNE() - { - $discovery = new PluginDiscovery(null); - $this->assertEmpty($discovery->discover()); - } - - protected function composeActualCommandFileDirectories($pluginList) - { - $dirList = []; - foreach ($pluginList as $plugin) { - $commandFileDirectory = $this->callProtected($plugin, 'getCommandFileDirectory'); - $dirList[] = $commandFileDirectory; - } - $actual = implode(',', $dirList); - return $actual; - } - - protected function composeExpectedCommandFileDirectories($valid_paths, $dir, $reverse = false) - { - $array = array_map( - function ($item) use ($dir) { - return "$dir$item/src"; - }, - $valid_paths - ); - if ($reverse) { - $array = array_reverse($array); - } - return implode(',', $array); - } - - protected function callProtected($object, $method, $args = []) - { - $r = new \ReflectionMethod($object, $method); - $r->setAccessible(true); - return $r->invokeArgs($object, $args); - } -} diff --git a/tests/unit_tests/Plugins/PluginInfoTest.php b/tests/unit_tests/Plugins/PluginInfoTest.php deleted file mode 100644 index eb05209dc..000000000 --- a/tests/unit_tests/Plugins/PluginInfoTest.php +++ /dev/null @@ -1,199 +0,0 @@ -plugins_dir = __DIR__ . '/../../fixtures/plugins/'; - - $this->paths = [ - $this->plugins_dir . 'invalid-no-composer-json', - $this->plugins_dir . 'invalid-wrong-composer-type', - $this->plugins_dir . 'with-namespace', - $this->plugins_dir . 'without-namespace', - $this->plugins_dir . 'invalid-composer-json', - $this->plugins_dir . 'invalid-extraless-composer', - $this->plugins_dir . 'invalid-compat-versionless-composer', - $this->plugins_dir . 'invalid-composer-namespace', - ]; - } - - /** - * Tests the PluginInfo::__construct(string) and PluginInfo::getInfo() functions - */ - public function testCreatePluginInfo() - { - $plugin = new PluginInfo($this->paths[2]); - - $info = $plugin->getInfo(); - $this->assertEquals('orgname/with-namespace', $info['name']); - $this->assertEquals('A test Terminus command with namespacing', $info['description']); - $this->assertEquals('terminus-plugin', $info['type']); - $this->assertEquals('MIT', $info['license']); - } - - /** - * Tests PluginInfo failing to construct because the composer.json does not contain a compatible version inside its - * extras' terminus property. - */ - public function testFailCompatibleVersionlessComposer() - { - $dir = $this->paths[6]; - $this->setExpectedException( - TerminusException::class, - 'The composer.json must contain a "compatible-version" field in "extras/terminus"' - ); - new PluginInfo($dir); - } - - /** - * Tests PluginInfo failing because the dir doesn't exist - */ - public function testFailDirDNE() - { - $dir = '/i/definitely/do/not/exist'; - $this->setExpectedException(TerminusException::class, 'The directory "' . $dir . '" does not exist'); - new PluginInfo($dir); - } - - /** - * Tests PluginInfo failing to construct because the composer.json does not contain a terminus property in its extras - */ - public function testFailExtralessComposer() - { - $dir = $this->paths[5]; - $this->setExpectedException( - TerminusException::class, - 'The composer.json must contain a "terminus" section in "extras"' - ); - new PluginInfo($dir); - } - - /** - * Tests PluginInfo failing to construct due to an invalid composer.json file - */ - public function testFailInvalidJSON() - { - $dir = $this->paths[4]; - $this->setExpectedException(TerminusException::class); - new PluginInfo($dir); - } - - /** - * Tests PluginInfo failing because the autoload namespace is invalid - */ - public function testFailInvalidNamespace() - { - $dir = $this->paths[7]; - $this->setExpectedException( - TerminusException::class, - 'The namespace "OrgName\\\\PluginName" in the composer.json autoload psr-4 section must end with ' - . 'a namespace separator. Should be "OrgName\\\\PluginName\\\\"' - ); - new PluginInfo($dir); - } - - /** - * Tests PluginInfo failing to construct due to an invalid type - */ - public function testFailInvalidType() - { - $this->setExpectedException(TerminusException::class); - new PluginInfo($this->paths[0]); - } - - /** - * Tests PluginInfo failing because the dir is a file - */ - public function testFailIsFile() - { - $file = __FILE__; - $this->setExpectedException(TerminusException::class, 'The file "' . $file . '" is not a directory'); - new PluginInfo($file); - } - - /** - * Tests PluginInfo failing due to a lack of a plugin dir - */ - public function testFailNoDir() - { - $this->setExpectedException(TerminusException::class, 'No plugin directory was specified'); - new PluginInfo(false); - } - - /** - * Tests PluginInfo failing due to a lack of a composer.json file - */ - public function testFailNoComposer() - { - $this->setExpectedException(TerminusException::class); - new PluginInfo($this->paths[0]); - } - - /** - * Tests the PluginInfo::getCompatibleTerminusVersion() function - */ - public function testGetCompatibleTerminusVersion() - { - $plugin = new PluginInfo($this->paths[2]); - $this->assertEquals('1.*', $plugin->getCompatibleTerminusVersion()); - } - - /** - * Tests the PluginInfo::getName() function - */ - public function testGetName() - { - $plugin = new PluginInfo($this->paths[2]); - $this->assertEquals('orgname/with-namespace', $plugin->getName()); - - $plugin = new PluginInfo($this->paths[3]); - $this->assertEquals('without-namespace', $plugin->getName()); - } - - /** - * Tests the loading of commands - */ - public function testLoadCommands() - { - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $this->markTestIncomplete('Plugins not supported on Windows yet.'); - } - - $plugin = new PluginInfo($this->paths[2]); - - $expected = [ - $this->plugins_dir . 'with-namespace/src/Commands/NullCommand.php' => - 'OrgName\\PluginName\\Commands\\NullCommand', - $this->plugins_dir . 'with-namespace/src/Commands/OptionalCommandGroup/NullCommand.php' => - 'OrgName\\PluginName\\Commands\\OptionalCommandGroup\\NullCommand', - ]; - $actual = $plugin->getCommandsAndHooks(); - $this->assertEquals($expected, $actual); - - - $plugin = new PluginInfo($this->paths[3]); - - $expected = [ - $this->plugins_dir . 'without-namespace/src/NullCommand.php' => 'NullCommand', - ]; - $actual = $plugin->getCommandsAndHooks(); - $this->assertEquals($expected, $actual); - } -} diff --git a/tests/unit_tests/Request/RequestTest.php b/tests/unit_tests/Request/RequestTest.php deleted file mode 100644 index 712acca18..000000000 --- a/tests/unit_tests/Request/RequestTest.php +++ /dev/null @@ -1,728 +0,0 @@ -request = new Request(); - $this->http_request = $this->getMockBuilder(HttpRequest::class) - ->disableOriginalConstructor() - ->getMock(); - $this->client = $this->getMock(Client::class); - $this->local_machine_helper = $this->getMockBuilder(LocalMachineHelper::class) - ->disableOriginalConstructor() - ->getMock(); - $this->filesystem = $this->getMockBuilder(Filesystem::class) - ->disableOriginalConstructor() - ->getMock(); - - $terminusVersion = '1.1.1'; - $phpVersion = '7.0.0'; - $script = 'foo/bar/baz.php'; - $platformScript = str_replace('/', DIRECTORY_SEPARATOR, $script); - $this->client_options = ['base_uri' => 'https://example.com:443', RequestOptions::VERIFY => true,]; - $this->request_headers = $this->response_headers = ['Content-type' => 'application/json',]; - $this->request_headers['User-Agent'] = - "Terminus/$terminusVersion (php_version=$phpVersion&script=$platformScript)"; - $this->response_data = ['abc' => '123',]; - - $this->config = new TerminusConfig(); - $this->config->set('host', 'example.com'); - $this->config->set('protocol', 'https'); - $this->config->set('port', '443'); - $this->config->set('version', $terminusVersion); - $this->config->set('script', $script); - $this->config->set('php_version', $phpVersion); - - $this->config->set('http_retry_delay_ms', 10); - $this->config->set('http_retry_backoff_multiplier', 2); - // Remove jitter since it's hard to test randomness. - $this->config->set('http_retry_jitter_ms', 0); - $this->config->set('http_max_retries', 3); - - $this->container = $this->getMock(Container::class); - $this->session = $this->getMockBuilder(Session::class) - ->disableOriginalConstructor() - ->getMock(); - $this->logger = $this->getMock(LoggerInterface::class); - - $this->request->setContainer($this->container); - $this->request->setConfig($this->config); - $this->request->setSession($this->session); - $this->request->setLogger($this->logger); - } - - /** - * Tests a successful download - */ - public function testDownload() - { - $domain = 'pantheon.io'; - $url = "http://$domain/somefile.tar.gz"; - $target = 'some local path'; - - $this->container->expects($this->at(0)) - ->method('get') - ->with($this->equalTo(LocalMachineHelper::class)) - ->willReturn($this->local_machine_helper); - $this->local_machine_helper->expects($this->once()) - ->method('getFilesystem') - ->with() - ->willReturn($this->filesystem); - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($target) - ->willReturn(false); - $this->container->expects($this->at(1)) - ->method('get') - ->with( - $this->equalTo(Client::class), - $this->equalTo([['base_uri' => $domain, RequestOptions::VERIFY => true,],]) - ) - ->willReturn($this->client); - $this->client->expects($this->once()) - ->method('request') - ->with( - $this->equalTo('GET'), - $this->equalTo($url), - $this->equalTo(['sink' => $target,]) - ); - - $out = $this->request->download($url, $target); - $this->assertNull($out); - } - - /** - * Tests an unsuccessful download because the target file already exists - */ - public function testDownloadPathExists() - { - $domain = 'pantheon.io'; - $url = "http://$domain/somefile.tar.gz"; - $target = 'some local path'; - - $this->container->expects($this->once()) - ->method('get') - ->with($this->equalTo(LocalMachineHelper::class)) - ->willReturn($this->local_machine_helper); - $this->local_machine_helper->expects($this->once()) - ->method('getFilesystem') - ->with() - ->willReturn($this->filesystem); - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($target) - ->willReturn(true); - $this->client->expects($this->never()) - ->method('request'); - - $this->setExpectedException(TerminusException::class, "Target file $target already exists."); - - $out = $this->request->download($url, $target); - $this->assertNull($out); - } - - /** - * Tests a successful download with the target being a directory - */ - public function testDownloadTargetDirectory() - { - $domain = 'pantheon.io'; - $url = "http://$domain/somefile.tar.gz"; - $target = './'; - $target_with_file = './somefile.tar.gz'; - - $this->container->expects($this->at(0)) - ->method('get') - ->with($this->equalTo(LocalMachineHelper::class)) - ->willReturn($this->local_machine_helper); - $this->local_machine_helper->expects($this->once()) - ->method('getFilesystem') - ->with() - ->willReturn($this->filesystem); - $this->filesystem->expects($this->once()) - ->method('exists') - ->with($target_with_file) - ->willReturn(false); - $this->container->expects($this->at(1)) - ->method('get') - ->with( - $this->equalTo(Client::class), - $this->equalTo([['base_uri' => $domain, RequestOptions::VERIFY => true,],]) - ) - ->willReturn($this->client); - $this->client->expects($this->once()) - ->method('request') - ->with( - $this->equalTo('GET'), - $this->equalTo($url), - $this->equalTo(['sink' => $target_with_file,]) - ); - - $out = $this->request->download($url, $target); - $this->assertNull($out); - } - - public function testRequest() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $this->request_headers = array_merge($this->request_headers, ['foo' => 'bar',]); - $request_options = [$method, $uri, $this->request_headers, null,]; - $actual = $this->makeRequest($request_options, 'foo/bar', ['headers' => $this->request_headers,]); - $expected = [ - 'data' => (object)$this->response_data, - 'headers' => $this->response_headers, - 'status_code' => 200, - ]; - $this->assertEquals($expected, $actual); - } - - public function testRequestRetryFails() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $this->request_headers = array_merge($this->request_headers); - $request_options = [$method, $uri, $this->request_headers, null,]; - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $request_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $e = new ServerException('Something bad happened', $this->http_request); - - $this->client->expects($this->exactly(4)) - ->method('send') - ->with($this->http_request) - ->will($this->throwException($e)); - - foreach ([1 => 10, 2 => 20, 3 => 40] as $at => $sleep) { - $this->logger->expects($this->at($at)) - ->method('warning') - ->with( - 'HTTPS request failed with error {error}. Retrying in {sleep} milliseconds..', - [ - 'error' => 'Something bad happened', - 'sleep' => $sleep - ] - ); - } - - $this->setExpectedException( - TerminusException::class, - "HTTPS request failed with error Something bad happened. Maximum retry attempts reached." - ); - - $this->request->request($uri, $request_options); - } - - public function testRequestDontRetry() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $this->request_headers = array_merge($this->request_headers); - $request_options = [$method, $uri, $this->request_headers, null,]; - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $request_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $e = new ClientException('Something bad happened. And it is your fault.', $this->http_request); - - $this->client->expects($this->exactly(1)) - ->method('send') - ->with($this->http_request) - ->will($this->throwException($e)); - - $this->setExpectedException(ClientException::class, "Something bad happened. And it is your fault."); - - $this->request->request($uri, $request_options); - } - - - public function testRequestRetrySucceeds() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $this->request_headers = array_merge($this->request_headers); - $request_options = [$method, $uri, $this->request_headers, null,]; - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $request_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $e = new ServerException('Something bad happened', $this->http_request); - - $message = $this->getMock(Response::class); - $body = $this->getMockBuilder(Stream::class) - ->disableOriginalConstructor() - ->getMock(); - $body->method('getContents')->willReturn(json_encode($this->response_data)); - $message->expects($this->once()) - ->method('getBody') - ->willReturn($body); - $message->expects($this->once()) - ->method('getHeaders') - ->willReturn($this->response_headers); - $message->expects($this->once()) - ->method('getStatusCode') - ->willReturn(200); - - - // Fail the first time - $this->client->expects($this->at(0)) - ->method('send') - ->with($this->http_request) - ->will($this->throwException($e)); - - // Succeed on retry - $this->client->expects($this->at(1)) - ->method('send') - ->with($this->http_request) - ->willReturn($message); - - $actual = $this->request->request($uri, $request_options); - - $expected = [ - 'data' => (object)$this->response_data, - 'headers' => $this->response_headers, - 'status_code' => 200, - ]; - $this->assertEquals($expected, $actual); - } - - /** - * Tests Request::request() when there is sensitive information to send to the debug log - */ - public function testRequestAuth() - { - $this->session->method('get')->with('session')->willReturn('abc123'); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $this->request_headers['Authorization'] = 'Bearer abc123'; - $headers = $debug_expected_headers = $this->request_headers; - $debug_expected_headers['Authorization'] = Request::HIDDEN_VALUE_REPLACEMENT; - $body = $debug_expected_body = ['machine_token' => 'sometokenhere', 'other_data' => 'hi',]; - $debug_expected_body['machine_token'] = Request::HIDDEN_VALUE_REPLACEMENT; - $request_options = [$method, $uri, $headers, json_encode($body),]; - - $this->logger->expects($this->at(1)) - ->method('debug') - ->with( - Request::DEBUG_RESPONSE_STRING, - [ - 'headers' => json_encode($this->response_headers), - 'data' => json_encode((object)$this->response_data), - 'status_code' => 200, - ] - ); - - $this->makeRequest($request_options, 'foo/bar', ['form_params' => $body,]); - } - - public function testRequestFullPath() - { - $this->config->set('verify_host_cert', false); - $this->session->method('get')->with('session')->willReturn('abc123'); - - $this->client_options[RequestOptions::VERIFY] = false; - - $method = 'GET'; - $uri = 'http://foo.bar/a/b/c'; - $request_options = [$method, $uri, $this->request_headers, null,]; - $this->makeRequest($request_options, 'http://foo.bar/a/b/c'); - } - - public function testRequestHostCert() - { - $file_path = str_replace('/', DIRECTORY_SEPARATOR, '/location/on/my/computer.pem'); - $this->config->set('host_cert', $file_path); - $this->session->method('get')->with('session')->willReturn(false); - - $this->client_options[RequestOptions::CERT] = $file_path; - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - $this->makeRequest($request_options, 'foo/bar'); - } - - public function testRequestNoVerify() - { - $this->config->set('verify_host_cert', false); - $this->session->method('get')->with('session')->willReturn(false); - - $this->client_options[RequestOptions::VERIFY] = false; - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - $this->makeRequest($request_options, 'foo/bar'); - } - - public function testRequestWithQuery() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar?foo=bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - $actual = $this->makeRequest($request_options, 'foo/bar', ['query' => ['foo' => 'bar',],]); - $expected = [ - 'data' => (object)$this->response_data, - 'headers' => $this->response_headers, - 'status_code' => 200, - ]; - $this->assertEquals($expected, $actual); - } - - /** - * Test Request::pagedRequest() when the second query's data comes back empty - */ - public function testPagedRequestWhenSecondQueryEmpty() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - - $prefix = 'abc_'; - $expected_options = $expected_options_2 = $request_options; - $limit = Request::PAGED_REQUEST_ENTRY_LIMIT; - $expected_options[1] .= "?limit=$limit"; - $expected_options_2[1] .= "?limit=$limit&start=$prefix" . ($limit - 1); - $expected_objects = []; - for ($i = 0; $i < $limit; $i++) { - $id = $prefix . $i; - $expected_objects[$id] = (object)compact('id'); - } - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $expected_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - $this->container->expects($this->at(2)) - ->method('get') - ->with(HttpRequest::class, $expected_options_2) - ->willReturn($this->http_request); - $this->container->expects($this->at(3)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $message = $this->getMock(Response::class); - $body = $this->getMockBuilder(Stream::class) - ->disableOriginalConstructor() - ->getMock(); - - $body->expects($this->at(0)) - ->method('getContents') - ->willReturn(json_encode($expected_objects)); - $body->expects($this->at(1)) - ->method('getContents') - ->willReturn(json_encode([])); - $message->expects($this->exactly(2)) - ->method('getBody') - ->willReturn($body); - $message->expects($this->exactly(2)) - ->method('getHeaders') - ->willReturn($this->response_headers); - $message->expects($this->exactly(2)) - ->method('getStatusCode') - ->willReturn(200); - $this->client->expects($this->exactly(2)) - ->method('send') - ->with($this->http_request) - ->willReturn($message); - - $actual = $this->request->pagedRequest($uri, $request_options); - $this->assertEquals(['data' => $expected_objects,], $actual); - } - - /** - * Test Request::pagedRequest() when the second query's data comes back with fewer than the limit of results - */ - public function testPagedRequestWhenSecondQueryNotFull() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - - $prefix = 'abc_'; - $expected_options = $expected_options_2 = $request_options; - $limit = Request::PAGED_REQUEST_ENTRY_LIMIT; - $expected_options[1] .= "?limit=$limit"; - $expected_options_2[1] .= "?limit=$limit&start=$prefix" . ($limit - 1); - $expected_objects = []; - for ($i = 0; $i < $limit; $i++) { - $id = $prefix . $i; - $expected_objects[$id] = (object)compact('id'); - } - $expected_objects_2 = []; - for ($i = $limit; $i < $limit + floor($limit / 2); $i++) { - $id = $prefix . $i; - $expected_objects_2[$id] = (object)compact('id'); - } - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $expected_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - $this->container->expects($this->at(2)) - ->method('get') - ->with(HttpRequest::class, $expected_options_2) - ->willReturn($this->http_request); - $this->container->expects($this->at(3)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $message = $this->getMock(Response::class); - $body = $this->getMockBuilder(Stream::class) - ->disableOriginalConstructor() - ->getMock(); - - $body->expects($this->at(0)) - ->method('getContents') - ->willReturn(json_encode($expected_objects)); - $body->expects($this->at(1)) - ->method('getContents') - ->willReturn(json_encode($expected_objects_2)); - $message->expects($this->exactly(2)) - ->method('getBody') - ->willReturn($body); - $message->expects($this->exactly(2)) - ->method('getHeaders') - ->willReturn($this->response_headers); - $message->expects($this->exactly(2)) - ->method('getStatusCode') - ->willReturn(200); - $this->client->expects($this->exactly(2)) - ->method('send') - ->with($this->http_request) - ->willReturn($message); - - $actual = $this->request->pagedRequest($uri, $request_options); - $this->assertEquals(['data' => $expected_objects + $expected_objects_2,], $actual); - } - - /** - * Test Request::pagedRequest() when the second query's data comes back with the same ending obj as the first - */ - public function testPagedRequestWhenSecondQueryRepeats() - { - $this->session->method('get')->with('session')->willReturn(false); - - $method = 'GET'; - $uri = 'https://example.com:443/api/foo/bar'; - $request_options = [$method, $uri, $this->request_headers, null,]; - - $prefix = 'abc_'; - $expected_options = $expected_options_2 = $request_options; - $limit = Request::PAGED_REQUEST_ENTRY_LIMIT; - $expected_options[1] .= "?limit=$limit"; - $expected_options_2[1] .= "?limit=$limit&start=$prefix" . ($limit - 1); - $expected_objects = []; - for ($i = 0; $i < $limit; $i++) { - $id = $prefix . $i; - $expected_objects[$id] = (object)compact('id'); - } - - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $expected_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - $this->container->expects($this->at(2)) - ->method('get') - ->with(HttpRequest::class, $expected_options_2) - ->willReturn($this->http_request); - $this->container->expects($this->at(3)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $message = $this->getMock(Response::class); - $body = $this->getMockBuilder(Stream::class) - ->disableOriginalConstructor() - ->getMock(); - - $body->expects($this->at(0)) - ->method('getContents') - ->willReturn(json_encode($expected_objects)); - $body->expects($this->at(1)) - ->method('getContents') - ->willReturn(json_encode($expected_objects)); - $message->expects($this->exactly(2)) - ->method('getBody') - ->willReturn($body); - $message->expects($this->exactly(2)) - ->method('getHeaders') - ->willReturn($this->response_headers); - $message->expects($this->exactly(2)) - ->method('getStatusCode') - ->willReturn(200); - $this->client->expects($this->exactly(2)) - ->method('send') - ->with($this->http_request) - ->willReturn($message); - - $actual = $this->request->pagedRequest($uri, $request_options); - $this->assertEquals(['data' => $expected_objects,], $actual); - } - - /** - * @param array $request_options - * @param string $url - * @param array $options - * @return array - */ - private function makeRequest(array $request_options, $url, array $options = []) - { - $this->container->expects($this->at(0)) - ->method('get') - ->with(HttpRequest::class, $request_options) - ->willReturn($this->http_request); - $this->container->expects($this->at(1)) - ->method('get') - ->with(Client::class, [$this->client_options,]) - ->willReturn($this->client); - - $message = $this->getMock(Response::class); - $body = $this->getMockBuilder(Stream::class) - ->disableOriginalConstructor() - ->getMock(); - $body->method('getContents')->willReturn(json_encode($this->response_data)); - $message->expects($this->once()) - ->method('getBody') - ->willReturn($body); - $message->expects($this->once()) - ->method('getHeaders') - ->willReturn($this->response_headers); - $message->expects($this->once()) - ->method('getStatusCode') - ->willReturn(200); - $this->client->expects($this->once()) - ->method('send') - ->with($this->http_request) - ->willReturn($message); - - return $this->request->request($url, $options); - } -} diff --git a/tests/unit_tests/Session/SessionTest.php b/tests/unit_tests/Session/SessionTest.php deleted file mode 100644 index 1c039165d..000000000 --- a/tests/unit_tests/Session/SessionTest.php +++ /dev/null @@ -1,229 +0,0 @@ -config = $this->getMockBuilder(Config::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->filecache = $this->getMockBuilder(FileStore::class) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * Test destroying the session - */ - public function testDestroy() - { - $this->filecache->expects($this->once()) - ->method('remove') - ->with($this->equalTo('session')); - - $this->session = new Session($this->filecache); - $out = $this->session->destroy(); - $this->assertNull($out); - } - - /** - * Test destroying the session - */ - public function testIsActive() - { - $data = [ - 'user_id' => '1234', - 'session' => '12345', - 'expires_at' => time() + 100, - ]; - - $this->filecache->expects($this->any()) - ->method('get') - ->with($this->equalTo('session')) - ->willReturn($data); - - $this->session = new Session($this->filecache); - $this->assertTrue($this->session->isActive()); - } - - /** - * Test destroying the session - */ - public function testIsActiveTestMode() - { - $data = [ - 'user_id' => '1234', - 'session' => '12345', - 'expires_at' => time() - 100, - ]; - - $this->filecache->expects($this->once()) - ->method('get') - ->with($this->equalTo('session')) - ->willReturn($data); - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('test_mode')) - ->willReturn(true); - - $this->session = new Session($this->filecache); - $this->session->setConfig($this->config); - $this->assertTrue($this->session->isActive()); - } - - /** - * Test destroying the session - */ - public function testIsNotActive() - { - $data = [ - 'user_id' => '1234', - 'session' => '12345', - 'expires_at' => time() - 100, - ]; - - $this->filecache->expects($this->once()) - ->method('get') - ->with($this->equalTo('session')) - ->willReturn($data); - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('test_mode')) - ->willReturn(false); - - $this->session = new Session($this->filecache); - $this->session->setConfig($this->config); - $this->assertFalse($this->session->isActive()); - } - - /** - * Test getting and Tokens object - */ - public function testGetTokens() - { - $tokens = $this->getMockBuilder(SavedTokens::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->session = new Session($this->filecache); - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(SavedTokens::class), - $this->equalTo([['session' => $this->session,],]) - ) - ->willReturn($tokens); - - $this->session->setContainer($this->container); - $out = $this->session->getTokens(); - $this->assertEquals($tokens, $out); - } - - /** - * Test getting and setting data - */ - public function testGetUser() - { - $params = (object)['id' => '123',]; - $user = new User($params); - - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(User::class), - $this->equalTo([$params,]) - ) - ->willReturn($user); - $this->filecache->expects($this->once()) - ->method('get') - ->with($this->equalTo('session')) - ->willReturn(['user_id' => $params->id,]); - - $this->session = new Session($this->filecache); - $this->session->setContainer($this->container); - $out = $this->session->getUser(); - $this->assertEquals($user, $out); - } - - /** - * Test getting and setting data - */ - public function testSetGet() - { - $data = [ - 'foo' => 'bar', - 'abc' => 123, - ]; - - $this->filecache->expects($this->once()) - ->method('get') - ->with($this->equalTo('session')) - ->willReturn($data); - - $this->session = new Session($this->filecache); - $this->assertEquals($data['foo'], $this->session->get('foo')); - $this->assertEquals($data['abc'], $this->session->get('abc')); - $this->assertNull($this->session->get('invalid')); - } - - /** - * Test getting and setting data - */ - public function testSetData() - { - $data = [ - 'foo' => 'bar', - 'abc' => 123, - ]; - - $this->filecache->expects($this->once()) - ->method('set') - ->with( - $this->equalTo('session'), - $this->equalTo($data) - ); - - $this->session = new Session($this->filecache); - $this->session->setData($data); - - foreach ($data as $key => $val) { - $this->assertEquals($val, $this->session->get($key)); - } - } -} diff --git a/tests/unit_tests/Site/DummyClass.php b/tests/unit_tests/Site/DummyClass.php deleted file mode 100644 index 7bff178ad..000000000 --- a/tests/unit_tests/Site/DummyClass.php +++ /dev/null @@ -1,11 +0,0 @@ -class = new DummyClass(); - $this->class->setSites($this->sites); - } -} diff --git a/tests/unit_tests/TerminusTest.php b/tests/unit_tests/TerminusTest.php deleted file mode 100644 index a1e8b8e43..000000000 --- a/tests/unit_tests/TerminusTest.php +++ /dev/null @@ -1,142 +0,0 @@ -container = $this->getMockBuilder(ContainerInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->input = $this->getMockBuilder(InputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->output = $this->getMockBuilder(OutputInterface::class) - ->disableOriginalConstructor() - ->getMock(); - - $config = $this->getMockBuilder(Config::class) - ->setMethods(['get',]) - ->disableOriginalConstructor() - ->getMock(); - $config->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn(self::CURRENT_VERSION); - $config->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('cache_dir')) - ->willReturn(sys_get_temp_dir()); - $config->expects($this->at(2)) - ->method('get') - ->with($this->equalTo('tokens_dir')) - ->willReturn(sys_get_temp_dir()); - $config->expects($this->at(3)) - ->method('get') - ->with($this->equalTo('plugins_dir')) - ->willReturn(sys_get_temp_dir()); - $config->expects($this->at(4)) - ->method('get') - ->with($this->equalTo('command_cache_dir')) - ->willReturn(sys_get_temp_dir()); - $config->expects($this->at(5)) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn(self::CURRENT_VERSION); - $config->expects($this->at(6)) - ->method('get') - ->with($this->equalTo('time_zone')) - ->willReturn('UTC'); - /* - $this->terminus = new Terminus($config, $this->input, $this->output); - - // Setting a new config mock object so the counts won't start at 7 - $this->config = $this->getMockBuilder(Config::class) - ->disableOriginalConstructor() - ->getMock(); - $this->terminus->setConfig($this->config); - */ - } - - /** - * Tests Terminus::run($input, $output) when not using VCR - */ - public function testRun() - { - $this->markTestIncomplete("Mocks need to be updated."); - - $this->config->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('vcr_cassette')) - ->willReturn(null); - $this->config->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('cache_dir')) - ->willReturn(sys_get_temp_dir()); - - $out = $this->terminus->run($this->input, $this->output); - $this->equalTo(0, $out); - } - - /** - * Tests Terminus::run($input, $output) when using VCR - */ - public function testRunWithVCR() - { - $this->markTestIncomplete("Mocks need to be updated."); - - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $this->markTestIncomplete( - "Windows CI doesn't have the necessary extensions." - ); - } - - $this->config->expects($this->at(0)) - ->method('get') - ->with($this->equalTo('vcr_cassette')) - ->willReturn('some_cassette'); - $this->config->expects($this->at(1)) - ->method('get') - ->with($this->equalTo('vcr_mode')) - ->willReturn('new_episodes'); - - $out = $this->terminus->run($this->input, $this->output); - $this->equalTo(0, $out); - } -} diff --git a/tests/unit_tests/TerminusTestCase.php b/tests/unit_tests/TerminusTestCase.php deleted file mode 100644 index 3dc00e7f0..000000000 --- a/tests/unit_tests/TerminusTestCase.php +++ /dev/null @@ -1,13 +0,0 @@ -container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data_store = $this->getMockBuilder(DataStoreInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->logger = $this->getMockBuilder(Logger::class) - ->disableOriginalConstructor() - ->getMock(); - $this->request = $this->getMockBuilder(Request::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->latest_release = new LatestRelease($this->data_store); - $this->latest_release->setContainer($this->container); - $this->latest_release->setLogger($this->logger); - $this->latest_release->setRequest($this->request); - } - - /** - * Tests running get($string) when there isn't a saved version file - */ - public function testFirstTime() - { - $version = '1.0.0-beta.2'; - - $this->data_store->expects($this->once()) - ->method('get') - ->with($this->equalTo(LatestRelease::SAVE_FILE)) - ->willReturn(null); - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo(LatestRelease::UPDATE_URL)) - ->willReturn(['data' => (object)['name' => $version,],]); - $this->data_store->expects($this->once()) - ->method('set'); - $this->logger->expects($this->never()) - ->method('debug'); - - $out = $this->latest_release->get('version'); - $this->assertEquals($out, $version); - } - - /** - * Tests running get($string) when unable to check for new versions - */ - public function testCannotCheckGithub() - { - $version = '1.0.0-beta.2'; - $check_date = strtotime('-' . LatestRelease::TIME_BETWEEN_CHECKS) - 999999; - $data = (object)['version' => $version, 'check_date' => $check_date,]; - $message = 'exception message'; - - $this->data_store->expects($this->once()) - ->method('get') - ->with($this->equalTo(LatestRelease::SAVE_FILE)) - ->willReturn($data); - $this->request->expects($this->once()) - ->method('request') - ->with($this->equalTo(LatestRelease::UPDATE_URL)) - ->will($this->throwException(new \Exception($message))); - $this->data_store->expects($this->never()) - ->method('set'); - $this->logger->expects($this->once()) - ->method('debug') - ->with( - $this->equalTo("Terminus was unable to check the latest release version number.\n{message}"), - $this->equalTo(compact('message')) - ); - - $out = $this->latest_release->get('version'); - $this->assertEquals($out, $version); - } - - /** - * Tests running get($string) when the version was already checked recently - */ - public function testCheckedRecently() - { - $version = '1.0.0-beta.2'; - $check_date = time(); - $data = (object)['version' => $version, 'check_date' => $check_date,]; - - $this->data_store->expects($this->once()) - ->method('get') - ->with($this->equalTo(LatestRelease::SAVE_FILE)) - ->willReturn($data); - $this->request->expects($this->never()) - ->method('request'); - $this->data_store->expects($this->never()) - ->method('set'); - $this->logger->expects($this->never()) - ->method('debug'); - - $out = $this->latest_release->get('version'); - $this->assertEquals($out, $version); - } - - /** - * Tests when trying to retrieve an attribute that doesn't exist - */ - public function testGetInvalidAttribute() - { - $version = '1.0.0-beta.2'; - $check_date = time(); - $data = (object)['version' => $version, 'check_date' => $check_date,]; - - $this->data_store->expects($this->once()) - ->method('get') - ->with($this->equalTo(LatestRelease::SAVE_FILE)) - ->willReturn($data); - $this->request->expects($this->never()) - ->method('request'); - $this->data_store->expects($this->never()) - ->method('set'); - $this->logger->expects($this->never()) - ->method('debug'); - - $this->setExpectedException(TerminusNotFoundException::class, 'There is no attribute called invalid.'); - - $out = $this->latest_release->get('invalid'); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/Update/UpdateCheckerTest.php b/tests/unit_tests/Update/UpdateCheckerTest.php deleted file mode 100644 index b6fada8dd..000000000 --- a/tests/unit_tests/Update/UpdateCheckerTest.php +++ /dev/null @@ -1,252 +0,0 @@ -config = $this->getMockBuilder(TerminusConfig::class) - ->disableOriginalConstructor() - ->getMock(); - $this->container = $this->getMockBuilder(Container::class) - ->disableOriginalConstructor() - ->getMock(); - $this->data_store = $this->getMockBuilder(DataStoreInterface::class) - ->disableOriginalConstructor() - ->getMock(); - $this->latest_release = $this->getMockBuilder(LatestRelease::class) - ->disableOriginalConstructor() - ->getMock(); - $this->logger = $this->getMockBuilder(Logger::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->update_checker = new UpdateChecker($this->data_store); - $this->update_checker->setConfig($this->config); - $this->update_checker->setContainer($this->container); - $this->update_checker->setLogger($this->logger); - } - - /** - * Tests the run function when the client is up-to-date - */ - public function testClientIsUpToDate() - { - $running_version_num = '1.0.0-beta.2'; - $latest_version_num = '1.0.0-beta.2'; - $hide_update_message = null; - - $this->config->expects($this->exactly(2)) - ->method('get') - ->withConsecutive(['version'], ['hide_update_message']) - ->willReturnOnConsecutiveCalls($running_version_num, $hide_update_message); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(LatestRelease::class), - $this->equalTo([$this->data_store,]) - ) - ->willReturn($this->latest_release); - $this->latest_release->expects($this->once()) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn($latest_version_num); - $this->logger->expects($this->never()) - ->method('notice'); - $this->logger->expects($this->never()) - ->method('debug'); - - $this->update_checker->setCheckForUpdates(true); - $out = $this->update_checker->run(); - $this->assertNull($out); - } - - /** - * Tests the run function when the client is out-of-date - */ - public function testClientIsOutOfDate() - { - $running_version_num = '1.0.0-beta.1'; - $latest_version_num = '1.0.0-beta.2'; - $hide_update_message = null; - - $this->config->expects($this->exactly(2)) - ->method('get') - ->withConsecutive(['version'], ['hide_update_message']) - ->willReturnOnConsecutiveCalls($running_version_num, $hide_update_message); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(LatestRelease::class), - $this->equalTo([$this->data_store,]) - ) - ->willReturn($this->latest_release); - $this->latest_release->expects($this->once()) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn($latest_version_num); - $this->logger->expects($this->once()) - ->method('notice'); - $this->logger->expects($this->never()) - ->method('debug'); - - $this->update_checker->setCheckForUpdates(true); - $out = $this->update_checker->run(); - $this->assertNull($out); - } - - /** - * Tests the run function when the client is out-of-date, but the update - * message is configured to be hidden. - */ - public function testClientIsOutOfDateButHideMessage() - { - $running_version_num = '1.0.0-beta.1'; - $latest_version_num = '1.0.0-beta.2'; - $hide_update_message = '1'; - - $this->config->expects($this->exactly(2)) - ->method('get') - ->withConsecutive(['version'], ['hide_update_message']) - ->willReturnOnConsecutiveCalls($running_version_num, $hide_update_message); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(LatestRelease::class), - $this->equalTo([$this->data_store,]) - ) - ->willReturn($this->latest_release); - $this->latest_release->expects($this->once()) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn($latest_version_num); - $this->logger->expects($this->never()) - ->method('notice'); - $this->logger->expects($this->never()) - ->method('debug'); - - $this->update_checker->setCheckForUpdates(true); - $out = $this->update_checker->run(); - $this->assertNull($out); - } - - /** - * Tests the run function when Github release data is unavailable - */ - public function testCannotCheckVersion() - { - $running_version_num = '1.0.0-beta.2'; - - $this->config->expects($this->once()) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn($running_version_num); - $this->container->expects($this->once()) - ->method('get') - ->with( - $this->equalTo(LatestRelease::class), - $this->equalTo([$this->data_store,]) - ) - ->willReturn($this->latest_release); - $this->latest_release->expects($this->once()) - ->method('get') - ->with($this->equalTo('version')) - ->will($this->throwException(new TerminusNotFoundException())); - $this->logger->expects($this->never()) - ->method('notice'); - $this->logger->expects($this->once()) - ->method('debug') - ->with( - $this->equalTo('Terminus has no saved release information.') - ); - - $this->update_checker->setCheckForUpdates(true); - $out = $this->update_checker->run(); - $this->assertNull($out); - } - - /** - * Ensures that the checker does not run when inappropriate and that the - * state can be changed by using setCheckForUpdates - */ - public function testShouldCheckForUpdates() - { - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $this->markTestSkipped("Windows CI doesn't have the necessary extensions."); - } - - $running_version_num = '1.0.0-beta.2'; - - $this->config->expects($this->any()) - ->method('get') - ->with($this->equalTo('version')) - ->willReturn($running_version_num); - $this->container->expects($this->any()) - ->method('get') - ->with( - $this->equalTo(LatestRelease::class), - $this->equalTo([$this->data_store,]) - ) - ->willReturn($this->latest_release); - $this->latest_release->expects($this->any()) - ->method('get') - ->with($this->equalTo('version')) - ->will($this->throwException(new TerminusNotFoundException())); - $this->logger->expects($this->any()) - ->method('debug') - ->with( - $this->equalTo('Terminus has no saved release information.') - ); - $out = $this->update_checker->run(); - $this->assertNull($out); - - $this->update_checker->setCheckForUpdates(true); - $out = $this->update_checker->run(); - $this->assertNull($out); - } -} diff --git a/tests/unit_tests/bootstrap.php b/tests/unit_tests/bootstrap.php deleted file mode 100755 index b8833e06a..000000000 --- a/tests/unit_tests/bootstrap.php +++ /dev/null @@ -1,17 +0,0 @@ -