]> git.sur5r.net Git - bacula/bacula/blob - gui/bweb/script/bweb-mysql.sql
Update
[bacula/bacula] / gui / bweb / script / bweb-mysql.sql
1 -- Manage Client groups in bweb
2 -- Works with postgresql and mysql5 
3
4 CREATE TABLE client_group
5 (
6     client_group_id             serial    not null,
7     client_group_name           text      not null,
8     primary key (client_group_id)
9 );
10
11 CREATE UNIQUE INDEX client_group_idx on client_group (client_group_name(255));
12
13 CREATE TABLE client_group_member
14 (
15     client_group_id                 integer       not null,
16     clientid          integer     not null,
17     primary key (client_group_id, clientid)
18 );
19
20 CREATE INDEX client_group_member_idx on client_group_member (client_group_id);
21
22
23 --   -- creer un nouveau group
24 --   
25 --   INSERT INTO client_group (client_group_name) VALUES ('SIGMA');
26 --   
27 --   -- affecter une machine a un group
28 --   
29 --   INSERT INTO client_group_member (client_group_id, clientid) 
30 --          (SELECT client_group_id, 
31 --                 (SELECT Clientid FROM Client WHERE Name = 'slps0003-fd')
32 --             FROM client_group 
33 --            WHERE client_group_name IN ('SIGMA', 'EXPLOITATION', 'MUTUALISE'));
34 --        
35 --   
36 --   -- modifier l'affectation d'une machine
37 --   
38 --   DELETE FROM client_group_member 
39 --         WHERE clientid = (SELECT ClientId FROM Client WHERE Name = 'slps0003-fd')
40 --   
41 --   -- supprimer un groupe
42 --   
43 --   DELETE FROM client_group_member 
44 --         WHERE client_group_id = (SELECT client_group_id FROM client_group WHERE client_group_name = 'EXPLOIT')
45 --   
46 --   
47 --   -- afficher tous les clients du group SIGMA
48 --   
49 --   SELECT Name FROM Client JOIN client_group_member using (clientid) 
50 --                           JOIN client_group using (client_group_id)
51 --    WHERE client_group_name = 'SIGMA';
52 --   
53 --   -- afficher tous les groups
54 --   
55 --   SELECT client_group_name FROM client_group ORDER BY client_group_name;
56 --   
57 --   -- afficher tous les job du group SIGMA hier
58 --   
59 --   SELECT JobId, Job.Name, Client.Name, JobStatus, JobErrors
60 --     FROM Job JOIN Client              USING(ClientId) 
61 --              JOIN client_group_member USING (ClientId)
62 --              JOIN client_group        USING (client_group_id)
63 --     WHERE client_group_name = 'SIGMA'
64 --       AND Job.StartTime > '2007-03-20'; 
65 --   
66 --   -- donne des stats
67 --   
68 --   SELECT count(1) AS nb, sum(JobFiles) AS files,
69 --          sum(JobBytes) AS size, sum(JobErrors) AS joberrors,
70 --          JobStatus AS jobstatus, client_group_name
71 --     FROM Job JOIN Client              USING(ClientId) 
72 --              JOIN client_group_member USING (ClientId)
73 --              JOIN client_group        USING (client_group_id)
74 --     WHERE Job.StartTime > '2007-03-20'
75 --     GROUP BY JobStatus, client_group_name
76 --   
77 --