From: Andreas Steffen Date: Tue, 11 Jun 2013 19:03:08 +0000 (+0200) Subject: Database changes needed to integrate Cygnet backend X-Git-Tag: 5.1.0dr1~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf250acb06439b178617a65b1a98ad962bf8229b;p=thirdparty%2Fstrongswan.git Database changes needed to integrate Cygnet backend --- diff --git a/src/libimcv/imv/data.sql b/src/libimcv/imv/data.sql index f881c91ce4..fa0ec01052 100644 --- a/src/libimcv/imv/data.sql +++ b/src/libimcv/imv/data.sql @@ -502,110 +502,110 @@ INSERT INTO groups ( /* 7 */ /* Default Product Groups */ -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 1, 2 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 2, 3 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 5 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 8 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 11 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 14 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 17 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 20 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 3, 23 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 6 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 9 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 12 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 15 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 18 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 21 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 4, 24 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 5, 25 ); -INSERT INTO default_product_groups ( - group_id, product +INSERT INTO groups_product_defaults ( + group_id, product_id ) VALUES ( 5, 26 ); diff --git a/src/libimcv/imv/imv_policy_manager.c b/src/libimcv/imv/imv_policy_manager.c index 641f8a2474..1a74da2770 100644 --- a/src/libimcv/imv/imv_policy_manager.c +++ b/src/libimcv/imv/imv_policy_manager.c @@ -70,7 +70,7 @@ bool policy_start(database_t *db, int session_id) if (device_id) { e = db->query(db, - "SELECT group_id FROM group_members WHERE device = ?", + "SELECT group_id FROM groups_members WHERE device_id = ?", DB_INT, device_id, DB_INT); if (e) { @@ -86,8 +86,8 @@ bool policy_start(database_t *db, int session_id) if (!group_id) { e = db->query(db, - "SELECT group_id FROM default_product_groups WHERE product = ?", - DB_INT, product_id, DB_INT); + "SELECT group_id FROM groups_product_defaults " + "WHERE product_id = ?", DB_INT, product_id, DB_INT); if (e) { if (e->enumerate(e, &gid)) diff --git a/src/libimcv/imv/tables.sql b/src/libimcv/imv/tables.sql index bae45e4249..8e8d42186a 100644 --- a/src/libimcv/imv/tables.sql +++ b/src/libimcv/imv/tables.sql @@ -43,51 +43,69 @@ CREATE TABLE file_hashes ( file INTEGER NOT NULL REFERENCES files(id), product INTEGER NOT NULL REFERENCES products(id), device INTEGER DEFAULT 0, + key INTEGER DEFAULT 0 REFERENCES keys(id), algo INTEGER NOT NULL REFERENCES algorithms(id), hash BLOB NOT NULL ); +DROP TABLE IF EXISTS keys; +CREATE TABLE keys ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + keyid BLOB NOT NULL, + owner TEXT NOT NULL +); +DROP INDEX IF EXISTS keys_keyid; +CREATE INDEX keys_keyid ON keys ( + keyid +); +DROP INDEX IF EXISTS keys_owner; +CREATE INDEX keys_owner ON keys ( + owner +); + DROP TABLE IF EXISTS groups; CREATE TABLE groups ( - id integer NOT NULL PRIMARY KEY, - name varchar(50) NOT NULL UNIQUE, - parent integer + id INTEGER NOT NULL PRIMARY KEY, + name VARCHAR(50) NOT NULL UNIQUE, + parent INTEGER ); -DROP TABLE IF EXISTS group_members; -CREATE TABLE group_members ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - group_id integer NOT NULL REFERENCES groups(id), - device integer NOT NULL REFERENCES devices(id), - UNIQUE (group_id, device) +DROP TABLE IF EXISTS groups_members; +CREATE TABLE groups_members ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + group_id INTEGER NOT NULL REFERENCES groups(id), + device_id INTEGER NOT NULL REFERENCES devices(id), + UNIQUE (group_id, device_id) ); -DROP TABLE IF EXISTS default_product_groups; -CREATE TABLE default_product_groups ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - group_id integer NOT NULL REFERENCES groups(id), - product integer NOT NULL REFERENCES products(id), - UNIQUE (group_id, product) +DROP TABLE IF EXISTS groups_product_defaults; +CREATE TABLE groups_product_defaults ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + group_id INTEGER NOT NULL REFERENCES groups(id), + product_id INTEGER NOT NULL REFERENCES products(id), + UNIQUE (group_id, product_id) ); DROP TABLE IF EXISTS policies; CREATE TABLE policies ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - type integer NOT NULL, - name varchar(100) NOT NULL UNIQUE, - argument text DEFAULT '' NOT NULL, - rec_fail integer NOT NULL, - rec_noresult integer NOT NULL, - file integer DEFAULT 0 REFERENCES files(id), - dir integer DEFAULT 0 REFERENCES directories(id) + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + type INTEGER NOT NULL, + name VARCHAR(100) NOT NULL UNIQUE, + argument TEXT DEFAULT '' NOT NULL, + rec_fail INTEGER NOT NULL, + rec_noresult INTEGER NOT NULL, + file INTEGER DEFAULT 0 REFERENCES files(id), + dir INTEGER DEFAULT 0 REFERENCES directories(id) ); DROP TABLE IF EXISTS enforcements; CREATE TABLE enforcements ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - policy integer NOT NULL REFERENCES policies(id), - group_id integer NOT NULL REFERENCES groups(id), - max_age integer NOT NULL, + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + policy INTEGER NOT NULL REFERENCES policies(id), + group_id INTEGER NOT NULL REFERENCES groups(id), + rec_fail INTEGER, + rec_noresult INTEGER, + max_age INTEGER NOT NULL, UNIQUE (policy, group_id) ); @@ -104,16 +122,16 @@ CREATE TABLE sessions ( DROP TABLE IF EXISTS workitems; CREATE TABLE workitems ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - session integer NOT NULL REFERENCES sessions(id), - enforcement integer NOT NULL REFERENCES enforcements(id), - type integer NOT NULL, - arg_str text, + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + session INTEGER NOT NULL REFERENCES sessions(id), + enforcement INTEGER NOT NULL REFERENCES enforcements(id), + type INTEGER NOT NULL, + arg_str TEXT, arg_int INTEGER DEFAULT 0, - rec_fail integer NOT NULL, - rec_noresult integer NOT NULL, - rec_final integer, - result text + rec_fail INTEGER NOT NULL, + rec_noresult INTEGER NOT NULL, + rec_final INTEGER, + result TEXT ); DROP INDEX IF EXISTS workitems_session; CREATE INDEX workitems_sessions ON workitems ( @@ -122,11 +140,11 @@ CREATE INDEX workitems_sessions ON workitems ( DROP TABLE IF EXISTS results; CREATE TABLE results ( - id integer NOT NULL PRIMARY KEY AUTOINCREMENT, - session integer NOT NULL REFERENCES measurements(id), - policy integer NOT NULL REFERENCES policies(id), - rec integer NOT NULL, - result text NOT NULL + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + session INTEGER NOT NULL REFERENCES measurements(id), + policy INTEGER NOT NULL REFERENCES policies(id), + rec INTEGER NOT NULL, + result TEXT NOT NULL ); DROP INDEX IF EXISTS results_session; CREATE INDEX results_session ON results ( @@ -166,7 +184,8 @@ CREATE TABLE component_hashes ( DROP TABLE IF EXISTS packages; CREATE TABLE packages ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL + name TEXT NOT NULL, + blacklist INTEGER DEFAULT 0 ); DROP INDEX IF EXISTS packages_name; CREATE INDEX packages_name ON packages ( @@ -176,10 +195,11 @@ CREATE INDEX packages_name ON packages ( DROP TABLE IF EXISTS versions; CREATE TABLE versions ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - package INTEGER NOT NULL, - product INTEGER NOT NULL, + package INTEGER NOT NULL REFERENCES packages(id), + product INTEGER NOT NULL REFERENCES products(id), release TEXT NOT NULL, security INTEGER DEFAULT 0, + blacklist INTEGER DEFAULT 0, time INTEGER DEFAULT 0 ); DROP INDEX IF EXISTS versions_release; @@ -194,7 +214,10 @@ CREATE INDEX versions_package_product ON versions ( DROP TABLE IF EXISTS devices; CREATE TABLE devices ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - value BLOB NOT NULL + description TEXT, + value BLOB NOT NULL, + product INTEGER REFERENCES products(id), + created INTEGER ); DROP INDEX IF EXISTS devices_id; CREATE INDEX devices_value ON devices (