Commit b5ed469e authored by Adrian Rossouw's avatar Adrian Rossouw

leave dns work for next alpha.

parent 5bfb1067
...@@ -84,6 +84,12 @@ class provisionService_dns_basic extends provisionService_dns { ...@@ -84,6 +84,12 @@ class provisionService_dns_basic extends provisionService_dns {
$this->server->dns_zoned_path = "{$app_dir}/zone.d"; $this->server->dns_zoned_path = "{$app_dir}/zone.d";
$this->server->dns_hostd_path = "{$app_dir}/host.d"; $this->server->dns_hostd_path = "{$app_dir}/host.d";
} }
$this->server->setProperty('dns_ttl', 86400); # 24h
$this->server->setProperty('dns_refresh', 21600); # 6h
$this->server->setProperty('dns_retry', 3600); # 1h
$this->server->setProperty('dns_expire', 604800); # 7d
$this->server->setProperty('dns_negativettl', 86400); # 24h
} }
function verify() { function verify() {
...@@ -128,22 +134,18 @@ class provisionService_dns_basic extends provisionService_dns { ...@@ -128,22 +134,18 @@ class provisionService_dns_basic extends provisionService_dns {
* This creates a zone, which mostly consists of adding the SOA record. * This creates a zone, which mostly consists of adding the SOA record.
*/ */
function create_zone($zone) { function create_zone($zone) {
$config = $this->config_load('server'); $this->config('server')->record_set($zone, $zone)->write();
$config->store->records[$zone] = $zone;
$config->write();
$config = $this->config_load('zone', array('name' => $zone)); $this->config('zone')->record_set('soa', array(
$config->store->records['SOA'] = $zone; 'name' => $this->server->remote_host,
$config->write(); ))->write();
} }
/** /**
* This completely drops a zone, without any checks. * This completely drops a zone, without any checks.
*/ */
function delete_zone($zone) { function delete_zone($zone) {
$config = d()->service('dns')->config_load('server'); $this->config('server')->record_del($zone)->write();
$config->store->records[$zone] = FALSE;
$config->write();
} }
...@@ -151,27 +153,7 @@ class provisionService_dns_basic extends provisionService_dns { ...@@ -151,27 +153,7 @@ class provisionService_dns_basic extends provisionService_dns {
class provisionService_dns_complex extends provisionService_dns_basic { class provisionService_dns_complex extends provisionService_dns_basic {
function init() { /**
parent::init();
$this->server->setProperty('dns_ttl', 86400); # 24h
$this->server->setProperty('dns_refresh', 21600); # 6h
$this->server->setProperty('dns_retry', 3600); # 1h
$this->server->setProperty('dns_expire', 604800); # 7d
$this->server->setProperty('dns_negativettl', 86400); # 24h
}
function verify() {
switch ($this->context->type) {
case 'site' :
$this->create_host();
break;
}
// This will restart the server if needed.
parent::verify();
}
/**
* Determine if a zone is defined on the nameserver. * Determine if a zone is defined on the nameserver.
* *
* To be implemented by engines. * To be implemented by engines.
......
...@@ -81,28 +81,15 @@ class provisionConfig { ...@@ -81,28 +81,15 @@ class provisionConfig {
if (sizeof($data)) { if (sizeof($data)) {
$this->data = $data; $this->data = $data;
} }
//$this->parsed_data = $this->parse();
//$this->data = array_merge($this->parsed_data, $this->data);
if (!is_null($this->data_store_class) && class_exists($this->data_store_class)) { if (!is_null($this->data_store_class) && class_exists($this->data_store_class)) {
$class = $this->data_store_class; $class = $this->data_store_class;
$this->store = new $class($owner, $data); $this->store = new $class($owner, $data);
} }
} }
/**
* Parse the existing config to load data
*
* This is called in the constructor, and should take care of
* opening the file and parsing it into the data array.
*/
function parse() {
return array();
}
/** /**
* Process and add to $data before writing the configuration. * Process and add to $data before writing the configuration.
* *
...@@ -148,7 +135,6 @@ class provisionConfig { ...@@ -148,7 +135,6 @@ class provisionConfig {
$class_name = get_parent_class($class_name); $class_name = get_parent_class($class_name);
} }
} }
return false; return false;
...@@ -227,7 +213,7 @@ class provisionConfig { ...@@ -227,7 +213,7 @@ class provisionConfig {
* Remove configuration file as specified by filename(). * Remove configuration file as specified by filename().
*/ */
function unlink() { function unlink() {
provision_file()->unlink($this->filename())->status(); return provision_file()->unlink($this->filename())->status();
} }
} }
......
...@@ -18,6 +18,8 @@ class provisionService extends provisionChainedState { ...@@ -18,6 +18,8 @@ class provisionService extends provisionChainedState {
protected $configs = array(); protected $configs = array();
protected $config_cache = array(); protected $config_cache = array();
private $_config = null;
// All services have the ability to have an associated restart command and listen port. // All services have the ability to have an associated restart command and listen port.
function init() { function init() {
...@@ -40,7 +42,9 @@ class provisionService extends provisionChainedState { ...@@ -40,7 +42,9 @@ class provisionService extends provisionChainedState {
return false; return false;
} }
function &config_load($config, $data = array()) { function config($config, $data = array()) {
$this->_config = null;
if (!isset($this->config_cache[$this->context->name][$config])) { if (!isset($this->config_cache[$this->context->name][$config])) {
foreach ((array) $this->configs[$config] as $class) { foreach ((array) $this->configs[$config] as $class) {
$this->config_cache[$this->context->name][$config] = new $class($this->context, array_merge($this->config_data($config), $data)); $this->config_cache[$this->context->name][$config] = new $class($this->context, array_merge($this->config_data($config), $data));
...@@ -48,9 +52,27 @@ class provisionService extends provisionChainedState { ...@@ -48,9 +52,27 @@ class provisionService extends provisionChainedState {
} }
if (isset($this->config_cache[$this->context->name][$config])) { if (isset($this->config_cache[$this->context->name][$config])) {
return $this->config_cache[$this->context->name][$config]; $this->_config = $this->config_cache[$this->context->name][$config];
} }
return false; return $this;
}
function record_set($arg1, $arg2 = null) {
if (is_object($this->_config)) {
if (is_object($this->_config->store)) {
if (is_array($arg1)) {
$this->_config->store->records = array_merge($this->_config->store->records, $arg1);
}
elseif (!is_numeric($arg1)) {
$this->_config->store->records[$arg1] = $arg2;
}
}
}
return $this;
}
function record_del($record) {
return $this->record_set($record, null);
} }
/** /**
...@@ -59,18 +81,8 @@ class provisionService extends provisionChainedState { ...@@ -59,18 +81,8 @@ class provisionService extends provisionChainedState {
* This method will fetch the class to instantiate from the internal * This method will fetch the class to instantiate from the internal
* $this->configs control array. * $this->configs control array.
*/ */
function create_config($config) { function create_config($config, $data = array()) {
if (isset($this->configs[$config])) { $this->config($config, $data)->write();
try {
$object =& $this->config_load($config);
$object->write();
}
catch (provisionException_continue $e) {
drush_log($e->getMessage());
// The service or configuration class has signaled that the config file
// was uneccesary, and we should continue normally.
}
}
} }
/** /**
...@@ -80,18 +92,7 @@ class provisionService extends provisionChainedState { ...@@ -80,18 +92,7 @@ class provisionService extends provisionChainedState {
* $this->configs control array. * $this->configs control array.
*/ */
function delete_config($config) { function delete_config($config) {
if (isset($this->configs[$config])) { $this->config($config, $data)->unlink();
try {
$object =& $this->config_load($config);
$object->unlink();
}
catch (provisionException_continue $e) {
drush_log($e->getMessage());
// The service or configuration class has signaled that the config file
// was uneccesary, and we should continue normally.
}
}
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment