IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 6, 2017, 11:30:10 AM (9 years ago)
Author:
eugene
Message:

merging changes from czw dev branch (compare with r39924)

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm

    r34764 r39926  
    250250            AND mountedvol.available = ?
    251251    },
     252    get_object_instances_by_proximity  => qq{
     253        SELECT
     254            storage_object.so_id,
     255            uri,
     256            mountedvol.available,
     257            vol_id,
     258            cab_id,
     259            (ABS(vol_id - ?) + 20 * ABS(cab_id - ?) + 100 * ABS(site_id - ?)) AS vol_idx
     260        FROM storage_object
     261        JOIN instance
     262            USING (so_id)
     263        JOIN mountedvol
     264            USING(vol_id)
     265        JOIN volume
     266            USING(vol_id)
     267        JOIN cabinet
     268            USING(cab_id)
     269        WHERE ext_id = ?
     270          AND mountedvol.available = ?
     271        ORDER BY vol_idx ASC
     272    },
    252273    get_object_instances_by_vol_name => qq{
    253274        SELECT
     
    301322    get_cabinets_for_ext_id            => qq{
    302323        SELECT DISTINCT
    303             cab_id
     324            volume.cab_id, site_id
    304325        FROM instance
    305         JOIN volume ON instance.vol_id = volume.vol_id
     326        JOIN volume ON (instance.vol_id = volume.vol_id)
     327        JOIN cabinet ON (volume.cab_id  = cabinet.cab_id)
    306328        JOIN storage_object USING(so_id)
    307329        WHERE ext_id = ?
     
    317339        FROM mountedvol AS m
    318340        JOIN volume AS v USING(vol_id)
     341        JOIN cabinet AS c USING(cab_id)
    319342        LEFT JOIN (
    320343                   SELECT
     
    336359             AND m.available = ?
    337360             AND m.allocate = ?
    338              AND m.xattr = 0
     361--             AND m.xattr = 0
    339362             AND ( (v.cab_id IS NULL) ||
    340363                   (v.cab_id != ?) )
     364             AND ( (c.site_id IS NULL) ||
     365                   (c.site_id != ?) )
    341366         ORDER BY free DESC
    342367         LIMIT ?) as topfew
     
    366391    },
    367392    new_cabinet         => qq{
    368         INSERT INTO cabinet (name, location, cab_id)
    369         VALUES (?, ?, NULL)
     393        INSERT INTO cabinet (name, location, site_id, cab_id)
     394        VALUES (?, ?, ?, NULL)
     395    },
     396    update_cabinet      => qq{
     397        UPDATE cabinet SET
     398           location = ?,
     399           name     = ?,
     400           site_id  = ?
     401        WHERE cab_id = ?
    370402    },
    371403    new_volume          => qq{
    372404        INSERT INTO volume (name, host, path, allocate, available, xattr, mountpoint, cab_id, note)
    373405        VALUES (?, ?, ?, TRUE, TRUE, FALSE, ?, NULL, ?)
     406    },
     407    new_alias          => qq{
     408        INSERT INTO aliasvol (alias_id, alias, name, vol_id)
     409        VALUES (NULL, ?, ?, ?)
     410    },
     411    update_alias       => qq{
     412        UPDATE alias SET
     413          vol_id = ?,
     414          name   = ?
     415        WHERE alias_id = ?
     416        AND   alias    = ?
    374417    },
    375418    get_volume_by_name => qq{
     
    377420        FROM volume
    378421        WHERE name = ?
     422    },
     423    get_volume_by_alias => qq{
     424        SELECT vol_id, name, host, path
     425        FROM aliasvol
     426        JOIN volume USING(vol_id,name)
     427        WHERE alias = ?
     428    },
     429    get_site_info_by_name => qq{
     430        SELECT vol_id, cab_id, site_id
     431        FROM volume
     432        JOIN cabinet USING(cab_id)
     433        WHERE volume.name = ?
    379434    },
    380435    get_volumes => qq{
     
    676731    cab_id INT NOT NULL AUTO_INCREMENT,
    677732    name VARCHAR(255) NOT NULL,
     733    site_id INT NOT NULL DEFAULT 0,
    678734    location VARCHAR(255),
    679735    PRIMARY KEY(cab_id),
    680736    UNIQUE KEY(name),
     737    KEY (site_id),
    681738    KEY (location)
    682739) ENGINE=innodb DEFAULT CHARSET=latin1;
     
    735792###
    736793
     794CREATE TABLE aliasvol (
     795    alias_id INT NOT NULL AUTO_INCREMENT,
     796    alias VARCHAR(255) NOT NULL,
     797    name  VARCHAR(255) NOT NULL,
     798    vol_id INT NOT NULL,
     799    PRIMARY KEY(alias_id),
     800    KEY(alias),
     801    KEY(name),
     802    FOREIGN KEY(vol_id) REFERENCES volume(vol_id)
     803) ENGINE=innodb DEFAULT CHARSET=latin1;
     804
     805###
     806
    737807CREATE TABLE instance (
    738808    ins_id BIGINT NOT NULL AUTO_INCREMENT,
Note: See TracChangeset for help on using the changeset viewer.