2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 22:15:23 +00:00

[#2039] kea-admin lease-upload mysql

This commit is contained in:
Andrei Pavel
2021-12-22 14:09:17 +02:00
parent 566f7dab05
commit d274a702d7
4 changed files with 402 additions and 18 deletions

View File

@@ -4174,6 +4174,112 @@ BEGIN
END $$
DELIMITER ;
-- Create a procedure that inserts a v4 lease from memfile data.
DELIMITER $$
CREATE PROCEDURE lease4Upload(
IN address VARCHAR(15),
IN hwaddr VARCHAR(20),
IN client_id VARCHAR(128),
IN valid_lifetime INT UNSIGNED,
IN expire BIGINT UNSIGNED,
IN subnet_id INT UNSIGNED,
IN fqdn_fwd TINYINT,
IN fqdn_rev TINYINT,
IN hostname VARCHAR(255),
IN state INT UNSIGNED,
IN user_context TEXT
)
BEGIN
INSERT INTO lease4 (
address,
hwaddr,
client_id,
valid_lifetime,
expire,
subnet_id,
fqdn_fwd,
fqdn_rev,
hostname,
state,
user_context
) VALUES (
INET_ATON(address),
UNHEX(REPLACE(hwaddr, ':', '')),
UNHEX(REPLACE(client_id, ':', '')),
valid_lifetime,
FROM_UNIXTIME(expire),
subnet_id,
fqdn_fwd,
fqdn_rev,
REPLACE(hostname, '&#x2c', ','),
state,
REPLACE(user_context, '&#x2c', ',')
);
END $$
DELIMITER ;
-- Create a procedure that inserts a v6 lease from memfile data.
DELIMITER $$
CREATE PROCEDURE lease6Upload(
IN address VARCHAR(39),
IN duid VARCHAR(128),
IN valid_lifetime INT UNSIGNED,
IN expire BIGINT UNSIGNED,
IN subnet_id INT UNSIGNED,
IN pref_lifetime INT UNSIGNED,
IN lease_type TINYINT,
IN iaid INT UNSIGNED,
IN prefix_len TINYINT UNSIGNED,
IN fqdn_fwd TINYINT,
IN fqdn_rev TINYINT,
IN hostname VARCHAR(255),
IN hwaddr VARCHAR(64),
IN state INT UNSIGNED,
IN user_context TEXT,
IN hwtype SMALLINT,
IN hwaddr_source INT UNSIGNED
)
BEGIN
INSERT INTO lease6 (
address,
duid,
valid_lifetime,
expire,
subnet_id,
pref_lifetime,
lease_type,
iaid,
prefix_len,
fqdn_fwd,
fqdn_rev,
hostname,
hwaddr,
state,
user_context,
hwtype,
hwaddr_source
) VALUES (
address,
UNHEX(REPLACE(duid, ':', '')),
valid_lifetime,
FROM_UNIXTIME(expire),
subnet_id,
pref_lifetime,
lease_type,
iaid,
prefix_len,
fqdn_fwd,
fqdn_rev,
REPLACE(hostname, '&#x2c', ','),
UNHEX(REPLACE(hwaddr, ':', '')),
state,
REPLACE(user_context, '&#x2c', ','),
hwtype,
hwaddr_source
);
END $$
DELIMITER ;
-- Update the schema version number.
UPDATE schema_version
SET version = '13', minor = '0';

View File

@@ -123,3 +123,5 @@ DROP TRIGGER IF EXISTS dhcp6_client_class_AUPD;
DROP TRIGGER IF EXISTS dhcp6_client_class_ADEL;
DROP TRIGGER IF EXISTS dhcp6_client_class_dependency_BINS;
DROP TRIGGER IF EXISTS dhcp6_client_class_dependency_AINS;
DROP PROCEDURE IF EXISTS lease4Upload;
DROP PROCEDURE IF EXISTS lease6Upload;

View File

@@ -52,6 +52,7 @@ then
fi
mysql "$@" <<EOF
-- Create a function that separates a contiguous hexadecimal string
-- into groups of two hexadecimals separated by colons.
DROP FUNCTION IF EXISTS colonSeparatedHex;
@@ -150,6 +151,112 @@ BEGIN
END $$
DELIMITER ;
-- Create a procedure that inserts a v4 lease from memfile data.
DELIMITER $$
CREATE PROCEDURE lease4Upload(
IN address VARCHAR(15),
IN hwaddr VARCHAR(20),
IN client_id VARCHAR(128),
IN valid_lifetime INT UNSIGNED,
IN expire BIGINT UNSIGNED,
IN subnet_id INT UNSIGNED,
IN fqdn_fwd TINYINT,
IN fqdn_rev TINYINT,
IN hostname VARCHAR(255),
IN state INT UNSIGNED,
IN user_context TEXT
)
BEGIN
INSERT INTO lease4 (
address,
hwaddr,
client_id,
valid_lifetime,
expire,
subnet_id,
fqdn_fwd,
fqdn_rev,
hostname,
state,
user_context
) VALUES (
INET_ATON(address),
UNHEX(REPLACE(hwaddr, ':', '')),
UNHEX(REPLACE(client_id, ':', '')),
valid_lifetime,
FROM_UNIXTIME(expire),
subnet_id,
fqdn_fwd,
fqdn_rev,
REPLACE(hostname, '&#x2c', ','),
state,
REPLACE(user_context, '&#x2c', ',')
);
END $$
DELIMITER ;
-- Create a procedure that inserts a v6 lease from memfile data.
DELIMITER $$
CREATE PROCEDURE lease6Upload(
IN address VARCHAR(39),
IN duid VARCHAR(128),
IN valid_lifetime INT UNSIGNED,
IN expire BIGINT UNSIGNED,
IN subnet_id INT UNSIGNED,
IN pref_lifetime INT UNSIGNED,
IN lease_type TINYINT,
IN iaid INT UNSIGNED,
IN prefix_len TINYINT UNSIGNED,
IN fqdn_fwd TINYINT,
IN fqdn_rev TINYINT,
IN hostname VARCHAR(255),
IN hwaddr VARCHAR(64),
IN state INT UNSIGNED,
IN user_context TEXT,
IN hwtype SMALLINT,
IN hwaddr_source INT UNSIGNED
)
BEGIN
INSERT INTO lease6 (
address,
duid,
valid_lifetime,
expire,
subnet_id,
pref_lifetime,
lease_type,
iaid,
prefix_len,
fqdn_fwd,
fqdn_rev,
hostname,
hwaddr,
state,
user_context,
hwtype,
hwaddr_source
) VALUES (
address,
UNHEX(REPLACE(duid, ':', '')),
valid_lifetime,
FROM_UNIXTIME(expire),
subnet_id,
pref_lifetime,
lease_type,
iaid,
prefix_len,
fqdn_fwd,
fqdn_rev,
REPLACE(hostname, '&#x2c', ','),
UNHEX(REPLACE(hwaddr, ':', '')),
state,
REPLACE(user_context, '&#x2c', ','),
hwtype,
hwaddr_source
);
END $$
DELIMITER ;
-- Update the schema version number.
UPDATE schema_version
SET version = '13', minor = '0';