Changeset 32735
- Timestamp:
- Nov 21, 2011, 2:34:49 PM (15 years ago)
- File:
-
- 1 edited
-
trunk/ippMonitor/czartool/czartool/CzarDb.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippMonitor/czartool/czartool/CzarDb.pm
r32601 r32735 28 28 bless $self, $class; 29 29 30 $self->update();31 30 return $self; 32 31 } … … 1342 1341 } 1343 1342 1344 ###########################################################################1345 #1346 # Update Db to newest version1347 #1348 ###########################################################################1349 sub update {1350 my ($self) = @_;1351 1352 my $currentRevision = -1;1353 1354 while (1) {1355 1356 $currentRevision = $self->getRevision();1357 if ($self->{_verbose}) {print "* Current Db revision = $currentRevision\n";}1358 1359 if ($currentRevision == 0) {$self->createRevision_1();}1360 elsif ($currentRevision == 1) {$self->createRevision_2();}1361 elsif ($currentRevision == 2) {$self->createRevision_3();}1362 elsif ($currentRevision == 3) {$self->createRevision_4();}1363 elsif ($currentRevision == 4) {$self->createRevision_5();}1364 elsif ($currentRevision == 5) {$self->createRevision_6();}1365 elsif ($currentRevision == 6) {$self->createRevision_7();}1366 elsif ($currentRevision == 7) {$self->createRevision_8();}1367 elsif ($currentRevision == 8) {$self->createRevision_9();}1368 elsif ($currentRevision == 9) {$self->createRevision_10();}1369 elsif ($currentRevision == 10) {$self->createRevision_11();}1370 elsif ($currentRevision == 11) {$self->createRevision_12();}1371 elsif ($currentRevision == 12) {$self->createRevision_13();}1372 else {last;}1373 }1374 }1375 1376 #######################################################################################1377 #1378 # Sets current revision of ippToPsps database1379 #1380 #######################################################################################1381 sub setRevision {1382 my ($self, $revision) = @_;1383 1384 my $query = $self->{_db}->prepare(<<SQL);1385 INSERT INTO revision (revision) VALUES ($revision);1386 SQL1387 $query->execute;1388 }1389 1390 #######################################################################################1391 #1392 # Gets current revision of ippToPsps database1393 #1394 #######################################################################################1395 sub getRevision {1396 my ($self) = @_;1397 1398 if (!$self->SUPER::doesTableExist("revision")) {return 0;}1399 1400 my $query = $self->{_db}->prepare(<<SQL);1401 SELECT revision1402 FROM revision1403 ORDER BY revision DESC LIMIT 1;1404 SQL1405 1406 $query->execute;1407 my @row = $query->fetchrow_array();1408 1409 return $row[0];1410 }1411 1412 #######################################################################################1413 #1414 # Create revision 1 of the database1415 #1416 #######################################################################################1417 sub createRevision_1 {1418 my ($self) = @_;1419 1420 print "* Creating revision 1 of '$self->{_dbName}'\n";1421 1422 my $query = $self->{_db}->prepare(<<SQL);1423 CREATE TABLE revision (1424 revision INT,1425 created TIMESTAMP DEFAULT NOW(),1426 primary key (revision)1427 );1428 SQL1429 $query->execute;1430 1431 my $stage = undef;1432 foreach $stage (@stages) {1433 1434 my $query = $self->{_db}->prepare(<<SQL);1435 CREATE TABLE $stage (1436 timestamp TIMESTAMP DEFAULT NOW(),1437 label VARCHAR(128) DEFAULT "NONE",1438 pending BIGINT NOT NULL,1439 faults BIGINT NOT NULL1440 );1441 SQL1442 $query->execute;1443 1444 }1445 1446 $self->setRevision(1);1447 }1448 1449 #######################################################################################1450 #1451 # Create revision 2 of the database1452 #1453 #######################################################################################1454 sub createRevision_2 {1455 my ($self) = @_;1456 1457 print "* Creating revision 2 of '$self->{_dbName}'\n";1458 1459 1460 my $stage = undef;1461 foreach $stage (@stages) {1462 1463 my $query = $self->{_db}->prepare(<<SQL);1464 ALTER TABLE $stage1465 ADD COLUMN reverting TINYINT NOT NULL DEFAULT 0;1466 SQL1467 $query->execute;1468 1469 }1470 1471 $self->setRevision(2);1472 }1473 1474 #######################################################################################1475 #1476 # Create revision 3 of the database1477 #1478 #######################################################################################1479 sub createRevision_3 {1480 my ($self) = @_;1481 1482 print "* Creating revision 3 of '$self->{_dbName}'\n";1483 1484 1485 my $stage = undef;1486 foreach $stage (@stages) {1487 1488 my $query = $self->{_db}->prepare(<<SQL);1489 ALTER TABLE $stage1490 ADD COLUMN processed BIGINT NOT NULL DEFAULT 0;1491 SQL1492 1493 $query->execute;1494 }1495 1496 $self->setRevision(3);1497 }1498 1499 #######################################################################################1500 #1501 # Create revision 4 of the database1502 #1503 #######################################################################################1504 sub createRevision_4 {1505 my ($self) = @_;1506 1507 print "* Creating revision 4 of '$self->{_dbName}'\n";1508 1509 my $query = $self->{_db}->prepare(<<SQL);1510 CREATE TABLE current_labels (server VARCHAR(128), label VARCHAR(128));1511 SQL1512 1513 $query->execute;1514 1515 $self->setRevision(4);1516 }1517 1518 #######################################################################################1519 #1520 # Create revision 5 of the database1521 #1522 #######################################################################################1523 sub createRevision_5 {1524 my ($self) = @_;1525 1526 print "* Creating revision 5 of '$self->{_dbName}'\n";1527 1528 my $query = $self->{_db}->prepare(<<SQL);1529 CREATE TABLE servers (1530 timestamp TIMESTAMP DEFAULT NOW(),1531 server VARCHAR(128),1532 alive TINYINT, running TINYINT);1533 SQL1534 1535 $query->execute;1536 1537 $self->setRevision(5);1538 }1539 1540 #######################################################################################1541 #1542 # Create revision 6 of the database1543 #1544 #######################################################################################1545 sub createRevision_6 {1546 my ($self) = @_;1547 1548 print "* Creating revision 6 of '$self->{_dbName}'\n";1549 1550 my $stage = undef;1551 my $index = undef;1552 foreach $stage (@stages) {1553 1554 $index = $stage . "Index";1555 my $query = $self->{_db}->prepare(<<SQL);1556 CREATE INDEX $index ON $stage (timestamp, label);1557 SQL1558 1559 $query->execute;1560 }1561 1562 my $query = $self->{_db}->prepare(<<SQL);1563 CREATE INDEX serverIndex ON servers (timestamp, server);1564 SQL1565 1566 $query->execute;1567 1568 1569 $self->setRevision(6);1570 }1571 1572 #######################################################################################1573 #1574 # Create revision 7 of the database1575 #1576 #######################################################################################1577 sub createRevision_7 {1578 my ($self) = @_;1579 1580 print "* Creating revision 7 of '$self->{_dbName}'\n";1581 1582 my $query = $self->{_db}->prepare(<<SQL);1583 ALTER TABLE current_labels1584 ADD COLUMN priority INT NOT NULL DEFAULT 0;1585 SQL1586 1587 $query->execute;1588 1589 $self->setRevision(7);1590 }1591 1592 #######################################################################################1593 #1594 # Create revision 8 of the database1595 #1596 #######################################################################################1597 sub createRevision_8 {1598 my ($self) = @_;1599 1600 print "* Creating revision 8 of '$self->{_dbName}'\n";1601 1602 # drop reverting column from all stages tables1603 my $stage = undef;1604 foreach $stage (@stages) {1605 1606 my $query = $self->{_db}->prepare(<<SQL);1607 ALTER TABLE $stage1608 DROP COLUMN reverting;1609 SQL1610 1611 $query->execute;1612 }1613 1614 # create new 'revert' table1615 my $query = $self->{_db}->prepare(<<SQL);1616 CREATE TABLE reverts (1617 stage VARCHAR(128),1618 reverting TINYINT);1619 SQL1620 1621 $query->execute;1622 1623 # insert stages into revert table1624 foreach $stage (@stages) {1625 my $query = $self->{_db}->prepare(<<SQL);1626 INSERT INTO reverts1627 (stage, reverting)1628 VALUES1629 ('$stage', 0);1630 SQL1631 $query->execute;1632 }1633 1634 $self->setRevision(8);1635 }1636 1637 #######################################################################################1638 #1639 # Create revision 9 of the database1640 #1641 #######################################################################################1642 sub createRevision_9 {1643 my ($self) = @_;1644 1645 print "* Creating revision 9 of '$self->{_dbName}'\n";1646 1647 my $query = $self->{_db}->prepare(<<SQL);1648 CREATE TABLE cluster_space (1649 timestamp TIMESTAMP DEFAULT NOW(),1650 total FLOAT,1651 available FLOAT,1652 used FLOAT,1653 hostsOver98 SMALLINT);1654 SQL1655 1656 $query->execute;1657 $query = $self->{_db}->prepare(<<SQL);1658 CREATE TABLE hosts (1659 host VARCHAR(128),1660 total FLOAT,1661 available FLOAT,1662 used FLOAT);1663 SQL1664 1665 $query->execute;1666 1667 $query = $self->{_db}->prepare(<<SQL);1668 CREATE INDEX clusterSpaceIndex ON cluster_space (timestamp);1669 SQL1670 1671 $query->execute;1672 1673 $self->setRevision(9);1674 }1675 1676 #######################################################################################1677 #1678 # Create revision 10 of the database1679 #1680 #######################################################################################1681 sub createRevision_10 {1682 my ($self) = @_;1683 1684 print "* Creating revision 10 of '$self->{_dbName}'\n";1685 1686 my $query = $self->{_db}->prepare(<<SQL);1687 ALTER TABLE hosts1688 ADD COLUMN writable TINYINT NOT NULL DEFAULT 0,1689 ADD COLUMN readable TINYINT NOT NULL DEFAULT 0;1690 SQL1691 1692 $query->execute;1693 1694 $self->setRevision(10);1695 }1696 1697 #######################################################################################1698 #1699 # Create revision 11 of the database1700 #1701 #######################################################################################1702 sub createRevision_11 {1703 my ($self) = @_;1704 1705 print "* Creating revision 11 of '$self->{_dbName}'\n";1706 1707 # same shape as other stage tables to enable easy update1708 #my $query = $self->{_db}->prepare(<<SQL);1709 #CREATE TABLE burntool (1710 # timestamp TIMESTAMP DEFAULT NOW(),1711 # label VARCHAR(128) DEFAULT "NONE",1712 # pending BIGINT NOT NULL,1713 # processed BIGINT NOT NULL,1714 # faults BIGINT NOT NULL);1715 #SQL1716 1717 # $query->execute;1718 # $query = $self->{_db}->prepare(<<SQL);1719 # CREATE INDEX burntoolIndex ON burntool (timestamp, label);1720 #SQL1721 1722 # $query->execute;1723 1724 $self->setRevision(11);1725 }1726 1727 #######################################################################################1728 #1729 # Create revision 12 of the database1730 #1731 # - adding nightlyscience table1732 #1733 #######################################################################################1734 sub createRevision_12 {1735 my ($self) = @_;1736 1737 print "* Creating revision 12 of '$self->{_dbName}'\n";1738 1739 my $query = $self->{_db}->prepare(<<SQL);1740 CREATE TABLE nightlyscience (1741 timestamp TIMESTAMP DEFAULT NOW(),1742 status VARCHAR(128) DEFAULT "NONE");1743 SQL1744 1745 $query->execute;1746 1747 $self->setRevision(12);1748 }1749 #######################################################################################1750 #1751 # Create revision 13 of the database1752 #1753 # adding server_dates table1754 #1755 #######################################################################################1756 sub createRevision_13 {1757 my ($self) = @_;1758 1759 print "* Creating revision 13 of '$self->{_dbName}'\n";1760 1761 my $query = $self->{_db}->prepare(<<SQL);1762 CREATE TABLE server_dates (1763 timestamp TIMESTAMP DEFAULT NOW(),1764 server VARCHAR(64) DEFAULT "NONE",1765 date VARCHAR(64) DEFAULT "NONE");1766 SQL1767 1768 $query->execute;1769 1770 $self->setRevision(13);1771 }1772 1343 1; 1773 1344
Note:
See TracChangeset
for help on using the changeset viewer.
