Parcourir la source

[3968] PgSQL schema updated to version 2.0.

Marcin Siodelski il y a 9 ans
Parent
commit
81095786b5

+ 23 - 16
src/bin/admin/scripts/pgsql/dhcpdb_create.pgsql

@@ -140,7 +140,7 @@ COMMIT;
 --  FUNCTION that returns a result set containing the column names for lease4 dumps
 DROP FUNCTION IF EXISTS lease4DumpHeader();
 CREATE FUNCTION lease4DumpHeader() RETURNS text AS  $$
-    select cast('address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname' as text) as result;
+    select cast('address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state' as text) as result;
 $$ LANGUAGE SQL;
 --
 
@@ -156,18 +156,21 @@ CREATE FUNCTION lease4DumpData() RETURNS
            subnet_id bigint,
            fqdn_fwd int,
            fqdn_rev int,
-           hostname text
+           hostname text,
+           state text
     ) as $$
-    SELECT ('0.0.0.0'::inet + address),
-            encode(hwaddr,'hex'),
-            encode(client_id,'hex'),
-            valid_lifetime,
-            expire,
-            subnet_id,
-            fqdn_fwd::int,
-            fqdn_rev::int,
-            hostname
-    from lease4;
+    SELECT ('0.0.0.0'::inet + l.address),
+            encode(l.hwaddr,'hex'),
+            encode(l.client_id,'hex'),
+            l.valid_lifetime,
+            l.expire,
+            l.subnet_id,
+            l.fqdn_fwd::int,
+            l.fqdn_rev::int,
+            l.hostname,
+            s.name
+    FROM lease4 l
+         left outer join lease_state s on (l.state = s.state);
 $$ LANGUAGE SQL;
 --
 
@@ -175,7 +178,7 @@ $$ LANGUAGE SQL;
 --  FUNCTION that returns a result set containing the column names for lease6 dumps
 DROP FUNCTION IF EXISTS lease6DumpHeader();
 CREATE FUNCTION lease6DumpHeader() RETURNS text AS  $$
-    select cast('address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname' as text) as result;
+    select cast('address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname,state' as text) as result;
 $$ LANGUAGE SQL;
 --
 
@@ -195,7 +198,8 @@ CREATE FUNCTION lease6DumpData() RETURNS
            prefix_len smallint,
            fqdn_fwd int,
            fqdn_rev int,
-           hostname text
+           hostname text,
+           state text
     ) AS $$
     SELECT (l.address,
             encode(l.duid,'hex'),
@@ -208,8 +212,11 @@ CREATE FUNCTION lease6DumpData() RETURNS
             l.prefix_len,
             l.fqdn_fwd::int,
             l.fqdn_rev::int,
-            l.hostname)
-     FROM lease6 l left outer join lease6_types t on (l.lease_type = t.lease_type);
+            l.hostname,
+            s.name)
+     FROM lease6 l
+         left outer join lease6_types t on (l.lease_type = t.lease_type)
+         left outer join lease_state s on (l.state = s.state);
 $$ LANGUAGE SQL;
 --
 

+ 4 - 4
src/bin/admin/tests/data/pgsql.lease4_dump_test.reference.csv

@@ -1,4 +1,4 @@
-address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname
-0.0.0.10,20,30,40,<timestamp1>,50,1,1,one.example.com
-0.0.0.11,,013233,40,<timestamp2>,50,1,1,
-0.0.0.12,22,,40,<timestamp3>,50,1,1,three.example.com
+address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state
+0.0.0.10,20,30,40,<timestamp1>,50,1,1,one.example.com,default
+0.0.0.11,,013233,40,<timestamp2>,50,1,1,,declined
+0.0.0.12,22,,40,<timestamp3>,50,1,1,three.example.com,expired-reclaimed

+ 4 - 4
src/bin/admin/tests/data/pgsql.lease6_dump_test.reference.csv

@@ -1,4 +1,4 @@
-address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname
-12,21,30,<timestamp3>,40,50,IA_TA,60,70,1,1,three.example.com
-11,,30,<timestamp2>,40,50,IA_TA,60,70,1,1,
-10,20,30,<timestamp1>,40,50,IA_TA,60,70,1,1,one.example.com
+address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname,state
+12,21,30,<timestamp3>,40,50,IA_TA,60,70,1,1,three.example.com,expired-reclaimed
+11,,30,<timestamp2>,40,50,IA_TA,60,70,1,1,,declined
+10,20,30,<timestamp1>,40,50,IA_TA,60,70,1,1,one.example.com,default

+ 13 - 9
src/bin/admin/tests/pgsql_tests.sh.in

@@ -68,17 +68,21 @@ pgsql_lease_init_test() {
     assert_eq 0 $? "schema_version table check failed, expected exit code: %d, actual: %d"
 
     # Check lease4 table
-    RESULT=`pgsql_execute "SELECT address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname FROM lease4;"`
+    RESULT=`pgsql_execute "SELECT address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname, state FROM lease4;"`
     assert_eq 0 $? "lease4 table check failed, expected exit code: %d, actual: %d"
 
     # Check lease6 table
-    RESULT=`pgsql_execute "SELECT address, duid, valid_lifetime, expire, subnet_id, pref_lifetime, lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname FROM lease6;"`
+    RESULT=`pgsql_execute "SELECT address, duid, valid_lifetime, expire, subnet_id, pref_lifetime, lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname, state FROM lease6;"`
     assert_eq 0 $? "lease6 table check failed, expected exit code: %d, actual: %d"
 
     # Check lease6_types table
     RESULT=`pgsql_execute "SELECT lease_type, name FROM lease6_types;"`
     assert_eq 0 $? "lease6_types table check failed, expected exit code: %d, actual: %d"
 
+    # Check lease_state table
+    RESULT=`pgsql_execute "SELECT state, name FROM lease_state;"`
+    assert_eq 0 $? "lease_state table check failed, expected exit code: %d, actual: %d"
+
     # Trying to create it again should fail.  This verifies the db present
     # check
     echo ""
@@ -104,7 +108,7 @@ pgsql_lease_version_test() {
 
     # Verfiy that kea-admin lease-version returns the correct version
     version=$(${keaadmin} lease-version pgsql -u $db_user -p $db_password -n $db_name)
-    assert_str_eq "1.0" ${version} "Expected kea-admin to return %s, returned value was %s"
+    assert_str_eq "2.0" ${version} "Expected kea-admin to return %s, returned value was %s"
 
     # Let's wipe the whole database
     pgsql_wipe
@@ -195,9 +199,9 @@ pgsql_lease4_dump_test() {
 
     # Insert the reference records
     insert_sql="\
-insert into lease4 values(10,E'\\x20',E'\\x30',40,'$timestamp1',50,'t','t','one.example.com');\
-insert into lease4 values(11,'',E'\\x0123',40,'$timestamp2',50,'t','t','');\
-insert into lease4 values(12,E'\\x22','',40,'$timestamp3',50,'t','t','three.example.com');"
+insert into lease4 values(10,E'\\x20',E'\\x30',40,'$timestamp1',50,'t','t','one.example.com', 0);\
+insert into lease4 values(11,'',E'\\x0123',40,'$timestamp2',50,'t','t','', 1);\
+insert into lease4 values(12,E'\\x22','',40,'$timestamp3',50,'t','t','three.example.com', 2);"
 
     pgsql_execute "$insert_sql"
     ERRCODE=$?
@@ -290,9 +294,9 @@ pgsql_lease6_dump_test() {
 
     # Insert the reference records
     insert_sql="\
-insert into lease6 values(10,E'\\x20',30,'$timestamp1',40,50,1,60,70,'t','t','one.example.com');\
-insert into lease6 values(11,'',30,'$timestamp2',40,50,1,60,70,'t','t','');\
-insert into lease6 values(12,E'\\x21',30,'$timestamp3',40,50,1,60,70,'t','t','three.example.com');"
+insert into lease6 values(10,E'\\x20',30,'$timestamp1',40,50,1,60,70,'t','t','one.example.com', 0);\
+insert into lease6 values(11,'',30,'$timestamp2',40,50,1,60,70,'t','t','', 1);\
+insert into lease6 values(12,E'\\x21',30,'$timestamp3',40,50,1,60,70,'t','t','three.example.com', 2);"
 
     pgsql_execute "$insert_sql"
     ERRCODE=$?