function hostmaster_bootstrap in Hostmaster (Aegir) 6.2
Same name and namespace in other branches
- 6 hostmaster.profile \hostmaster_bootstrap()
- 7.4 hostmaster.install \hostmaster_bootstrap()
- 7.3 hostmaster.install \hostmaster_bootstrap()
- 5.x hostmaster.profile \hostmaster_bootstrap()
1 call to hostmaster_bootstrap()
File
- ./
hostmaster.profile, line 49
Code
function hostmaster_bootstrap() {
/* Default node types and default node */
$types = node_types_rebuild();
variable_set('install_profile', 'hostmaster');
// Initialize the hosting defines
hosting_init();
/* Default client */
$node = new stdClass();
$node->uid = 1;
$node->type = 'client';
$node->title = drush_get_option('client_name', 'admin');
$node->status = 1;
node_save($node);
variable_set('hosting_default_client', $node->nid);
variable_set('hosting_admin_client', $node->nid);
$client_id = $node->nid;
/* Default server */
$node = new stdClass();
$node->uid = 1;
$node->type = 'server';
$node->title = php_uname('n');
$node->status = 1;
$node->hosting_name = 'server_master';
$node->services = array();
/* Make it compatible with more than apache and nginx */
$master_server = d()->platform->server;
hosting_services_add($node, 'http', $master_server->http_service_type, array(
'restart_cmd' => $master_server->http_restart_cmd,
'port' => $master_server->http_port,
'available' => 1,
));
/* examine the db server associated with the hostmaster site */
$db_server = d()->db_server;
$master_db = parse_url($db_server->master_db);
/* if it's not the same server as the master server, create a new node
* for it */
if ($db_server->remote_host == $master_server->remote_host) {
$db_node = $node;
}
else {
$db_node = new stdClass();
$db_node->uid = 1;
$db_node->type = 'server';
$db_node->title = $master_db['host'];
$db_node->status = 1;
$db_node->hosting_name = 'server_' . $db_server->remote_host;
$db_node->services = array();
}
hosting_services_add($db_node, 'db', $db_server->db_service_type, array(
'db_type' => $master_db['scheme'],
'db_user' => urldecode($master_db['user']),
'db_passwd' => urldecode($master_db['pass']),
'port' => urldecode($master_db['port']),
'available' => 1,
));
drupal_set_message(st('Creating master server node'));
node_save($node);
if ($db_server->remote_host != $master_server->remote_host) {
drupal_set_message(st('Creating db server node'));
node_save($db_node);
}
variable_set('hosting_default_web_server', $node->nid);
variable_set('hosting_own_web_server', $node->nid);
variable_set('hosting_default_db_server', $db_node->nid);
variable_set('hosting_own_db_server', $db_node->nid);
$node = new stdClass();
$node->uid = 1;
$node->title = 'Drupal';
$node->type = 'package';
$node->package_type = 'platform';
$node->short_name = 'drupal';
$node->status = 1;
node_save($node);
$package_id = $node->nid;
$node = new stdClass();
$node->uid = 1;
$node->type = 'platform';
$node->title = 'hostmaster';
$node->publish_path = d()->root;
$node->web_server = variable_get('hosting_default_web_server', 2);
$node->status = 1;
node_save($node);
$platform_id = $node->nid;
variable_set('hosting_own_platform', $node->nid);
$instance = new stdClass();
$instance->rid = $node->nid;
$instance->version = VERSION;
$instance->schema_version = drupal_get_installed_schema_version('system');
$instance->package_id = $package_id;
$instance->status = 0;
hosting_package_instance_save($instance);
// Create the hostmaster profile node
$node = new stdClass();
$node->uid = 1;
$node->title = 'hostmaster';
$node->type = 'package';
$node->package_type = 'profile';
$node->short_name = 'hostmaster';
$node->status = 1;
node_save($node);
$profile_id = $node->nid;
// Create the main Aegir site node
$node = new stdClass();
$node->uid = 1;
$node->type = 'site';
$node->title = d()->uri;
$node->platform = $platform_id;
$node->client = $client_id;
$node->db_server = $db_node->nid;
$node->profile = $profile_id;
$node->import = true;
$node->hosting_name = 'hostmaster';
$node->status = 1;
node_save($node);
variable_set('site_frontpage', 'hosting/sites');
// do not allow user registration: the signup form will do that
variable_set('user_register', 0);
// This is saved because the config generation script is running via drush, and does not have access to this value
variable_set('install_url', $GLOBALS['base_url']);
}