/** * Create a new instance (with given web-root, URL, * and DB credentials -- if given). If an existing one * exists, it will be overwritten. * * @param Instance $instance * @param bool $useWeb * @param bool $useDB * @param string $perm PERM_SUPER, PERM_ADMIN */ public function create($instance, $useWeb = TRUE, $useDB = TRUE, $perm = DatabaseManagementInterface::PERM_ADMIN) { if ($useDB) { if (!$instance->getDatasource()) { $instance->setDatasource($this->db->createDatasource(basename($instance->getRoot()) . $instance->getName())); } $this->db->dropDatabase($instance->getDatasource()); $this->db->createDatabase($instance->getDatasource(), $perm); } if ($useWeb) { if (!$instance->getUrl()) { $instance->setUrl('http://localhost:7979'); } $this->httpd->dropVhost($instance->getRoot(), $instance->getUrl()); $this->httpd->createVhost($instance->getRoot(), $instance->getUrl()); } $this->put($instance->getId(), $instance); }