Skip to content

Commit ef732b4

Browse files
author
Razvan Becheriu
committed
[#2958] add upgrade script
1 parent d149028 commit ef732b4

18 files changed

+7034
-7489
lines changed

configure.ac

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1819,6 +1819,8 @@ AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_019_to_020.sh],
18191819
[chmod +x src/share/database/scripts/pgsql/upgrade_019_to_020.sh])
18201820
AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_020_to_021.sh],
18211821
[chmod +x src/share/database/scripts/pgsql/upgrade_020_to_021.sh])
1822+
AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_021_to_022.sh],
1823+
[chmod +x src/share/database/scripts/pgsql/upgrade_021_to_022.sh])
18221824
AC_CONFIG_FILES([src/share/database/scripts/pgsql/wipe_data.sh],
18231825
[chmod +x src/share/database/scripts/pgsql/wipe_data.sh])
18241826
AC_CONFIG_FILES([src/share/yang/Makefile])

src/bin/admin/tests/mysql_tests.sh.in

Lines changed: 72 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -813,12 +813,6 @@ mysql_upgrade_18_to_19_test() {
813813
run_statement "ipv6_reservations_insert" "$qry" "3001::99"
814814
}
815815

816-
mysql_upgrade_19_to_22_test() {
817-
# For now this function only verifies version number.
818-
version=$("${kea_admin}" db-version mysql -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}")
819-
assert_str_eq "22.0" "${version}" "Expected kea-admin to return %s, returned value was %s"
820-
}
821-
822816
mysql_upgrade_test() {
823817

824818
test_start "mysql.upgrade"
@@ -1503,9 +1497,6 @@ SET @disable_audit = 0"
15031497
# Check upgrade from 18.0 to 19.0.
15041498
mysql_upgrade_18_to_19_test
15051499

1506-
# Check upgrade from 19.0 to 22.0.
1507-
mysql_upgrade_19_to_22_test
1508-
15091500
# Let's wipe the whole database
15101501
mysql_wipe
15111502

@@ -2936,6 +2927,77 @@ mysql_ddns_conflict_resolution_mode_update_test() {
29362927
test_finish 0
29372928
}
29382929

2930+
# Verifies that deprecated dhcp-ddns global map parameters are removed.
2931+
mysql_dhcp_ddns_global_parameters_test() {
2932+
test_start "mysql.dhcp_ddns_global_parameters_test"
2933+
2934+
# Let's wipe the whole database
2935+
mysql_wipe
2936+
2937+
# We need to create an older database.
2938+
# Initialize database to schema 1.0.
2939+
mysql -u"${db_user}" -p"${db_password}" "${db_name}" < "@abs_top_srcdir@/src/bin/admin/tests/dhcpdb_create_1.0.mysql"
2940+
2941+
# Now upgrade to schema 21.0.
2942+
mysql_upgrade_schema_to_version 21.0
2943+
2944+
# Now insert global parameter instances of dhcp-ddns.
2945+
sql=\
2946+
"set @disable_audit = 1; \
2947+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2948+
values ('dhcp-ddns.generated-prefix', 'my-host', current_time(),4);
2949+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2950+
values ('dhcp-ddns.qualifying-suffix', '', current_time(),4);
2951+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2952+
values ('dhcp-ddns.override-no-update', 'true', current_time(),2);
2953+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2954+
values ('dhcp-ddns.override-client-update', 'true', current_time(),2);
2955+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2956+
values ('dhcp-ddns.replace-client-name', 'never', current_time(),4);
2957+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2958+
values ('dhcp-ddns.hostname-char-replacement', '', current_time(),4);
2959+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2960+
values ('dhcp-ddns.hostname-char-set', '[^A-Za-z0-9.-]', current_time(),4);
2961+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2962+
values ('dhcp-ddns.generated-prefix', 'my-host', current_time(),4);
2963+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2964+
values ('dhcp-ddns.qualifying-suffix', '', current_time(),4);
2965+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2966+
values ('dhcp-ddns.override-no-update', 'true', current_time(),2);
2967+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2968+
values ('dhcp-ddns.override-client-update', 'true', current_time(),2);
2969+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2970+
values ('dhcp-ddns.replace-client-name', 'never', current_time(),4);
2971+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2972+
values ('dhcp-ddns.hostname-char-replacement', '', current_time(),4);
2973+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2974+
values ('dhcp-ddns.hostname-char-set', '[^A-Za-z0-9.-]', current_time(),4);"
2975+
2976+
run_statement "insert dhcp-ddns map parameters" "$sql"
2977+
2978+
# Verify the inserted record counts.
2979+
qry="select count(*) from dhcp4_global_parameter where name like '%dhcp-ddns%';"
2980+
run_statement "#get 4_global parameter count before update" "$qry" 7
2981+
2982+
qry="select count(*) from dhcp6_global_parameter where name like '%dhcp-ddns%';"
2983+
run_statement "#get 6_global parameter count before update" "$qry" 7
2984+
2985+
# Upgrade to schema 22.0
2986+
mysql_upgrade_schema_to_version 22.0
2987+
2988+
# Verify the record have been removed.
2989+
qry="select count(*) from dhcp4_global_parameter where name like '%dhcp-ddns%';"
2990+
run_statement "#get 4_global parameter count before update" "$qry" 0
2991+
2992+
qry="select count(*) from dhcp6_global_parameter where name like '%dhcp-ddns%';"
2993+
run_statement "#get 6_global parameter count before update" "$qry" 0
2994+
2995+
# Let's wipe the whole database
2996+
mysql_wipe
2997+
2998+
test_finish 0
2999+
}
3000+
29393001
# Run tests.
29403002
mysql_db_init_test
29413003
mysql_host_reservation_init_test
@@ -2962,4 +3024,4 @@ mysql_shrink_server_tag_test
29623024
mysql_update_empty_duid_test
29633025
mysql_update_v6_addresses_to_binary
29643026
mysql_ddns_conflict_resolution_mode_update_test
2965-
3027+
mysql_dhcp_ddns_global_parameters_test

src/bin/admin/tests/pgsql_tests.sh.in

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ pgsql_db_version_test() {
142142
run_command \
143143
"${kea_admin}" db-version pgsql -u "${db_user}" -p "${db_password}" -n "${db_name}"
144144
version="${OUTPUT}"
145-
assert_str_eq "21.0" "${version}" "Expected kea-admin to return %s, returned value was %s"
145+
assert_str_eq "22.0" "${version}" "Expected kea-admin to return %s, returned value was %s"
146146

147147
# Let's wipe the whole database
148148
pgsql_wipe
@@ -927,7 +927,7 @@ pgsql_upgrade_test() {
927927

928928
# Verify upgraded schema reports the latest version.
929929
version=$("${kea_admin}" db-version pgsql -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}")
930-
assert_str_eq "21.0" "${version}" 'Expected kea-admin to return %s, returned value was %s'
930+
assert_str_eq "22.0" "${version}" 'Expected kea-admin to return %s, returned value was %s'
931931

932932
# Check 1.0 to 2.0 upgrade
933933
pgsql_upgrade_1_0_to_2_0_test
@@ -2101,7 +2101,7 @@ insert into ipv6_reservations (address, prefix_len, type, dhcp6_iaid, host_id) \
21012101
# that reservation_mode values in subnet and shared network tables are
21022102
# converted to new reservations flags.
21032103
pgsql_ddns_conflict_resolution_mode_update_test() {
2104-
test_start "pgsql_ddns_conflict_resolution_mode_update_test"
2104+
test_start "pgsql.ddns_conflict_resolution_mode_update_test"
21052105

21062106
# Let's wipe the whole database
21072107
pgsql_wipe
@@ -2164,6 +2164,81 @@ pgsql_ddns_conflict_resolution_mode_update_test() {
21642164
test_finish 0
21652165
}
21662166

2167+
# Verifies that deprecated dhcp-ddns global map parameters are removed.
2168+
pgsql_dhcp_ddns_global_parameters_test() {
2169+
test_start "pgsql.dhcp_ddns_global_parameters_test"
2170+
2171+
# Let's wipe the whole database
2172+
pgsql_wipe
2173+
2174+
# We need to create an older database with lease data so we can
2175+
# verify the upgrade mechanisms which prepopulate the lease stat
2176+
# tables.
2177+
#
2178+
# Initialize database to schema 1.0.
2179+
pgsql_execute_script "@abs_top_srcdir@/src/bin/admin/tests/dhcpdb_create_1.0.pgsql"
2180+
assert_eq 0 "${EXIT_CODE}" "cannot initialize 1.0 database, expected exit code: %d, actual: %d"
2181+
2182+
# Now upgrade to schema 21.0
2183+
pgsql_upgrade_schema_to_version 21.0
2184+
2185+
# Now insert global parameter instances of dhcp-ddns.
2186+
sql=\
2187+
"select set_config('kea.disable_audit', 'true', false);\
2188+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2189+
values ('dhcp-ddns.generated-prefix', 'my-host', current_timestamp,4);
2190+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2191+
values ('dhcp-ddns.qualifying-suffix', '', current_timestamp,4);
2192+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2193+
values ('dhcp-ddns.override-no-update', 'true', current_timestamp,2);
2194+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2195+
values ('dhcp-ddns.override-client-update', 'true', current_timestamp,2);
2196+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2197+
values ('dhcp-ddns.replace-client-name', 'never', current_timestamp,4);
2198+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2199+
values ('dhcp-ddns.hostname-char-replacement', '', current_timestamp,4);
2200+
insert into dhcp4_global_parameter (name,value, modification_ts,parameter_type)\
2201+
values ('dhcp-ddns.hostname-char-set', '[^A-Za-z0-9.-]', current_timestamp,4);
2202+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2203+
values ('dhcp-ddns.generated-prefix', 'my-host', current_timestamp,4);
2204+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2205+
values ('dhcp-ddns.qualifying-suffix', '', current_timestamp,4);
2206+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2207+
values ('dhcp-ddns.override-no-update', 'true', current_timestamp,2);
2208+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2209+
values ('dhcp-ddns.override-client-update', 'true', current_timestamp,2);
2210+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2211+
values ('dhcp-ddns.replace-client-name', 'never', current_timestamp,4);
2212+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2213+
values ('dhcp-ddns.hostname-char-replacement', '', current_timestamp,4);
2214+
insert into dhcp6_global_parameter (name,value, modification_ts,parameter_type)\
2215+
values ('dhcp-ddns.hostname-char-set', '[^A-Za-z0-9.-]', current_timestamp,4);"
2216+
2217+
run_statement "insert dhcp-ddns map parameters" "$sql"
2218+
2219+
# Verify the inserted record counts.
2220+
qry="select count(*) from dhcp4_global_parameter where name like '%dhcp-ddns%';"
2221+
run_statement "#get 4_global parameter count before update" "$qry" 7
2222+
2223+
qry="select count(*) from dhcp6_global_parameter where name like '%dhcp-ddns%';"
2224+
run_statement "#get 6_global parameter count before update" "$qry" 7
2225+
2226+
# Upgrade to schema 22.0
2227+
pgsql_upgrade_schema_to_version 22.0
2228+
2229+
# Verify the record have been removed.
2230+
qry="select count(*) from dhcp4_global_parameter where name like '%dhcp-ddns%';"
2231+
run_statement "#get 4_global parameter count before update" "$qry" 0
2232+
2233+
qry="select count(*) from dhcp6_global_parameter where name like '%dhcp-ddns%';"
2234+
run_statement "#get 6_global parameter count before update" "$qry" 0
2235+
2236+
# Let's wipe the whole database
2237+
pgsql_wipe
2238+
2239+
test_finish 0
2240+
}
2241+
21672242
# Run tests.
21682243
pgsql_db_init_test
21692244
pgsql_db_version_test
@@ -2184,3 +2259,4 @@ pgsql_unused_subnet_id_test
21842259
pgsql_update_empty_duid_test
21852260
pgsql_update_v6_addresses_to_binary
21862261
pgsql_ddns_conflict_resolution_mode_update_test
2262+
pgsql_dhcp_ddns_global_parameters_test

0 commit comments

Comments
 (0)