/**
  * 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);
 }