]> git.sur5r.net Git - bacula/bacula/blob - gui/bweb/script/bweb-mysql.sql
ebl Sort client, job and fileset combo
[bacula/bacula] / gui / bweb / script / bweb-mysql.sql
1 -- --------------------------------------------------
2 -- Upgrade from 2.2
3 -- --------------------------------------------------
4
5 ALTER TABLE Status ADD COLUMN severity int;
6 UPDATE Status SET severity = 15;
7 UPDATE Status SET severity = 100 where JobStatus = 'f';
8 UPDATE Status SET severity = 90 where JobStatus = 'A';
9 UPDATE Status SET severity = 10 where JobStatus = 'T';
10
11 -- New tables for bresto (same as brestore)
12
13 CREATE TABLE brestore_knownjobid
14 (
15      JobId integer NOT NULL,
16      CONSTRAINT brestore_knownjobid_pkey PRIMARY KEY (JobId)
17 );
18
19 CREATE TABLE brestore_pathhierarchy
20 (
21      PathId integer NOT NULL,
22      PPathId integer NOT NULL,
23      CONSTRAINT brestore_pathhierarchy_pkey PRIMARY KEY (PathId)
24 );
25
26 CREATE INDEX brestore_pathhierarchy_ppathid 
27                           ON brestore_pathhierarchy (PPathId);
28
29 CREATE TABLE brestore_pathvisibility
30 (
31       PathId integer NOT NULL,
32       JobId integer NOT NULL,
33       Size int8 DEFAULT 0,
34       Files int4 DEFAULT 0,
35       CONSTRAINT brestore_pathvisibility_pkey PRIMARY KEY (JobId, PathId)
36 );
37
38 CREATE INDEX brestore_pathvisibility_jobid
39                           ON brestore_pathvisibility (JobId);
40
41
42 CREATE TABLE bweb_user
43 (
44         userid       serial not null,
45         username     text not null,
46         use_acl      boolean default false,
47         enabled      boolean default true,
48         comment      text default '',
49         passwd       text default '',
50         tpl          text default '',
51         primary key (userid)
52 );
53 CREATE UNIQUE INDEX bweb_user_idx on bweb_user (username(255));
54
55 CREATE TABLE bweb_role
56 (
57         roleid       serial not null,
58         rolename     text not null,
59 --      comment      text default '',
60         primary key (roleid)
61 );
62 CREATE UNIQUE INDEX bweb_role_idx on bweb_role (rolename(255));
63 INSERT INTO bweb_role (rolename) VALUES ('r_user_mgnt');
64 INSERT INTO bweb_role (rolename) VALUES ('r_group_mgnt');
65 INSERT INTO bweb_role (rolename) VALUES ('r_configure');
66
67 INSERT INTO bweb_role (rolename) VALUES ('r_autochanger_mgnt');
68 INSERT INTO bweb_role (rolename) VALUES ('r_location_mgnt');
69 INSERT INTO bweb_role (rolename) VALUES ('r_storage_mgnt');
70 INSERT INTO bweb_role (rolename) VALUES ('r_delete_job');
71 INSERT INTO bweb_role (rolename) VALUES ('r_prune');
72 INSERT INTO bweb_role (rolename) VALUES ('r_purge');
73
74 INSERT INTO bweb_role (rolename) VALUES ('r_view_job');
75 INSERT INTO bweb_role (rolename) VALUES ('r_view_log');
76 INSERT INTO bweb_role (rolename) VALUES ('r_view_stat');
77 INSERT INTO bweb_role (rolename) VALUES ('r_view_media');
78 INSERT INTO bweb_role (rolename) VALUES ('r_view_group');
79 INSERT INTO bweb_role (rolename) VALUES ('r_view_running_job');
80
81 INSERT INTO bweb_role (rolename) VALUES ('r_run_job');
82 INSERT INTO bweb_role (rolename) VALUES ('r_cancel_job');
83 INSERT INTO bweb_role (rolename) VALUES ('r_client_status');
84
85 CREATE TABLE  bweb_role_member
86 (
87         roleid       integer not null,
88         userid       integer not null,
89         primary key (roleid, userid)
90 );
91
92 CREATE TABLE  bweb_client_group_acl
93 (
94         client_group_id       integer not null,
95         userid                integer not null,
96         primary key (client_group_id, userid)
97 );
98
99
100 -- --------------------------------------------------
101 -- Upgrade from 2.0
102 -- --------------------------------------------------
103
104 -- Manage Client groups in bweb
105 -- Works with postgresql and mysql5 
106
107 CREATE TABLE client_group
108 (
109     client_group_id             serial    not null,
110     client_group_name           text      not null,
111     primary key (client_group_id)
112 );
113
114 CREATE UNIQUE INDEX client_group_idx on client_group (client_group_name(255));
115
116 CREATE TABLE client_group_member
117 (
118     client_group_id   integer     not null,
119     clientid          integer     not null,
120     primary key (client_group_id, clientid)
121 );
122
123 CREATE INDEX client_group_member_idx on client_group_member (client_group_id);
124
125
126 --   -- creer un nouveau group
127 --   
128 --   INSERT INTO client_group (client_group_name) VALUES ('SIGMA');
129 --   
130 --   -- affecter une machine a un group
131 --   
132 --   INSERT INTO client_group_member (client_group_id, clientid) 
133 --          (SELECT client_group_id, 
134 --                 (SELECT Clientid FROM Client WHERE Name = 'slps0003-fd')
135 --             FROM client_group 
136 --            WHERE client_group_name IN ('SIGMA', 'EXPLOITATION', 'MUTUALISE'));
137 --        
138 --   
139 --   -- modifier l'affectation d'une machine
140 --   
141 --   DELETE FROM client_group_member 
142 --         WHERE clientid = (SELECT ClientId FROM Client WHERE Name = 'slps0003-fd')
143 --   
144 --   -- supprimer un groupe
145 --   
146 --   DELETE FROM client_group_member 
147 --         WHERE client_group_id = (SELECT client_group_id FROM client_group WHERE client_group_name = 'EXPLOIT')
148 --   
149 --   
150 --   -- afficher tous les clients du group SIGMA
151 --   
152 --   SELECT Name FROM Client JOIN client_group_member using (clientid) 
153 --                           JOIN client_group using (client_group_id)
154 --    WHERE client_group_name = 'SIGMA';
155 --   
156 --   -- afficher tous les groups
157 --   
158 --   SELECT client_group_name FROM client_group ORDER BY client_group_name;
159 --   
160 --   -- afficher tous les job du group SIGMA hier
161 --   
162 --   SELECT JobId, Job.Name, Client.Name, JobStatus, JobErrors
163 --     FROM Job JOIN Client              USING(ClientId) 
164 --              JOIN client_group_member USING (ClientId)
165 --              JOIN client_group        USING (client_group_id)
166 --     WHERE client_group_name = 'SIGMA'
167 --       AND Job.StartTime > '2007-03-20'; 
168 --   
169 --   -- donne des stats
170 --   
171 --   SELECT count(1) AS nb, sum(JobFiles) AS files,
172 --          sum(JobBytes) AS size, sum(JobErrors) AS joberrors,
173 --          JobStatus AS jobstatus, client_group_name
174 --     FROM Job JOIN Client              USING(ClientId) 
175 --              JOIN client_group_member USING (ClientId)
176 --              JOIN client_group        USING (client_group_id)
177 --     WHERE Job.StartTime > '2007-03-20'
178 --     GROUP BY JobStatus, client_group_name
179 --   
180 --