hosting_db_server.module in Hosting 7.4
Same filename and directory in other branches
Allow Hostmaster to configure database servers.
File
db_server/hosting_db_server.moduleView source
<?php
/**
* @file
* Allow Hostmaster to configure database servers.
*/
/**
* Implements hook_hosting_service().
*/
function hosting_db_server_hosting_service() {
return array(
'mysql' => 'db',
);
}
/**
* Implements hook_hosting_service_type().
*/
function hosting_db_server_hosting_service_type() {
return array(
'db' => array(
'title' => t('Database'),
),
);
}
/**
* Find the database server.
*/
function hosting_get_db_server($hostname) {
if (_hosting_valid_ip($hostname)) {
$ip = $hostname;
$hostname = gethostbyaddr($hostname);
}
else {
$ip = gethostbyname($hostname);
}
$result = db_query("SELECT nid FROM {node} WHERE title in ('%s', '%s') and type = :type", array(
':type' => 'server',
'' => $ip,
'' => $hostname,
))
->fetchField();
if ($result) {
return node_load($result);
}
return FALSE;
}
/**
* Get the databases hosted on a server.
*
* @param int $db_server_id
* The node ID of the db server.
*/
function hosting_get_sites_on_db_server($db_server_id) {
$return = array();
$result = db_query("SELECT nid, db_name FROM {hosting_site} WHERE db_server = :id", array(
':id' => $db_server_id,
));
while ($site = $result
->fetch()) {
$return[$site->nid] = $site->db_name;
}
return $return;
}
/**
* Implements hook_nodeapi_TYPE_OP().
*/
function hosting_db_server_nodeapi_server_presave(&$node) {
if (empty($node->db_passwd) && !empty($node->nid)) {
$old = node_load($node->nid);
if (isset($old->db_passwd)) {
$node->db_passwd = $old->db_passwd;
}
}
}
/**
* Implements hook_views_api().
*/
function hosting_db_server_views_api() {
return array(
'api' => 2,
'path' => drupal_get_path('module', 'hosting_db_server'),
);
}
Functions
Name | Description |
---|---|
hosting_db_server_hosting_service | Implements hook_hosting_service(). |
hosting_db_server_hosting_service_type | Implements hook_hosting_service_type(). |
hosting_db_server_nodeapi_server_presave | Implements hook_nodeapi_TYPE_OP(). |
hosting_db_server_views_api | Implements hook_views_api(). |
hosting_get_db_server | Find the database server. |
hosting_get_sites_on_db_server | Get the databases hosted on a server. |