From 56ecefc77e4acc56300b6588cc0aa3db6a460cad Mon Sep 17 00:00:00 2001
From: Mike Hibler <hibler@cs.utah.edu>
Date: Fri, 3 Jan 2014 21:46:16 -0700
Subject: [PATCH] New database fields for lease_daemon.

---
 sql/database-create.sql |  4 +++-
 sql/updates/4/375       | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 sql/updates/4/375

diff --git a/sql/database-create.sql b/sql/database-create.sql
index 3829bfb11f..3fbf699763 100644
--- a/sql/database-create.sql
+++ b/sql/database-create.sql
@@ -3552,8 +3552,10 @@ CREATE TABLE `project_leases` (
   `inception` timestamp NOT NULL default CURRENT_TIMESTAMP,
   `lease_end` timestamp NOT NULL default '2037-01-19 03:14:07',
   `last_used` timestamp NOT NULL default '0000-00-00 00:00:00',
-  `state` enum('valid','unapproved','grace','locked','expired','initializing') NOT NULL default 'unapproved',
+  `last_checked` timestamp NOT NULL default '0000-00-00 00:00:00',
+  `state` enum('valid','unapproved','grace','locked','expired') NOT NULL default 'unapproved',
   `statestamp` timestamp NOT NULL default '0000-00-00 00:00:00',
+  `renewals` int(10) unsigned NOT NULL default '0',
   `locked` datetime default NULL, 
   `locker_pid` int(11) default '0',
   PRIMARY KEY (`lease_idx`),
diff --git a/sql/updates/4/375 b/sql/updates/4/375
new file mode 100644
index 0000000000..a385f062a5
--- /dev/null
+++ b/sql/updates/4/375
@@ -0,0 +1,34 @@
+#
+# project_leases:
+# 1. get rid of ill-advised initializing state.
+# 2. add last_checked timestamp.
+# 3. add renewals count.
+#
+use strict;
+use libdb;
+
+sub DoUpdate($$$)
+{
+    my ($dbhandle, $dbname, $version) = @_;
+
+    DBQueryFatal("alter table project_leases change state ".
+		 "state enum('valid','unapproved','grace','locked','expired') ".
+		 "NOT NULL default 'unapproved'");
+    if (! DBSlotExists("project_leases", "last_checked")) {
+	DBQueryFatal("alter table project_leases add ".
+		     "`last_checked` timestamp ".
+		     "NOT NULL default '0000-00-00 00:00:00' ".
+		     "after `last_used`");
+    }
+    if (! DBSlotExists("project_leases", "renewals")) {
+	DBQueryFatal("alter table project_leases add ".
+		     "`renewals` int(10) unsigned NOT NULL default '0' ".
+		     "after `statestamp`");
+    }
+    return 0;
+
+}
+
+# Local Variables:
+# mode:perl
+# End:
-- 
GitLab