You are here

function hosting_update_6008 in Hostmaster (Aegir) 6

Implements hook_update_N().

Add hosting_context table to map alias names.

File

modules/hosting/hosting.install, line 214
Install, update and uninstall for the hosting module.

Code

function hosting_update_6008() {
  $return = array();
  if (!variable_get('hosting_update_6008_run', FALSE)) {
    db_create_table($return, 'hosting_context', array(
      'fields' => array(
        'nid' => array(
          'type' => 'int',
          'unsigned' => TRUE,
          'not null' => TRUE,
          'default' => 0,
        ),
        'name' => array(
          'type' => 'varchar',
          'length' => 50,
          'not null' => TRUE,
        ),
      ),
      'primary key' => array(
        'nid',
      ),
      'unique keys' => array(
        'name' => array(
          'name',
        ),
      ),
    ));
    variable_set('hosting_update_6008_run', TRUE);
    $records = array();
    $result = db_query("SELECT n.nid, title FROM {node} n LEFT JOIN {hosting_site} s ON n.nid=s.nid WHERE s.status <> -2 AND n.type='site'");
    while ($object = db_fetch_object($result)) {
      $records[$object->nid] = $object->title;
    }
    $result = db_query("SELECT n.nid, title FROM {node} n LEFT JOIN {hosting_server} s ON n.nid=s.nid WHERE n.status = 1 AND n.type='server'");
    while ($object = db_fetch_object($result)) {
      $records[$object->nid] = 'server_' . preg_replace("/[!\\W\\.\\-]/", "", $object->title);
    }

    // We start with the web server because we assume that the main hostmaster site is installed locally.
    $server_id = variable_get('hosting_default_web_server', 3);
    $records[$server_id] = 'server_master';
    foreach ($records as $nid => $name) {
      hosting_context_register($nid, $name);
    }
  }
  return $return;
}