public function launch() { // user data is executed when instance launches, it is important that this file starts with "#!" $userData = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/TestRunner/scripts/on_instance_launch.sh'); $result = $this->client->runInstances(array('ImageId' => $this->config->getAmi(), 'MinCount' => 1, 'MaxCount' => 1, 'InstanceType' => $this->config->getInstanceType(), 'KeyName' => $this->config->getKeyName(), 'SecurityGroups' => $this->config->getSecurityGroups(), 'InstanceInitiatedShutdownBehavior' => 'terminate', 'UserData' => base64_encode($userData))); $instanceIds = $result->getPath('Instances/*/InstanceId'); $this->client->waitUntilInstanceRunning(array('InstanceIds' => $instanceIds)); return $instanceIds; }
/** * @return string The ID of a running instance */ protected function runAnInstance() { self::log('Launch an instance.'); $result = $this->client->getCommand('RunInstances', array('ImageId' => self::TEST_AMI, 'MinCount' => 1, 'MaxCount' => 1, 'InstanceType' => InstanceType::T1_MICRO))->getResult(); $instanceId = current($result->getPath('Instances/*/InstanceId')); self::log('Wait until the instance is running.'); $this->client->waitUntilInstanceRunning(array('InstanceIds' => array($instanceId))); return $instanceId; }