root/tags/omega-1.0.0-rc2/engine/ispcp-rqst-mngr

Revision 479, 13.5 kB (checked in by malte, 2 years ago)

--

Line 
1 #!/usr/bin/perl
2
3 # ISPCP(tm) - Virtual Hosting Control System
4 # Copyright (c) 2001-2004 by moleSoftware GmbH
5 # http://www.molesoftware.com
6 #
7 #
8 # License:
9 #    This program is free software; you can redistribute it and/or
10 #    modify it under the terms of the MPL Mozilla Public License
11 #    as published by the Free Software Foundation; either version 1.1
12 #    of the License, or (at your option) any later version.
13 #
14 #    This program is distributed in the hope that it will be useful,
15 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
16 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 #    MPL Mozilla Public License for more details.
18 #
19 #    You may have received a copy of the MPL Mozilla Public License
20 #    along with this program.
21 #
22 #    An on-line copy of the MPL Mozilla Public License can be found
23 #    http://www.mozilla.org/MPL/MPL-1.1.html
24 #
25 #
26 # The ISPCP Home Page is at:
27 #
28 #    http://www.vhcs.net
29
30
31 use FindBin;
32 use lib "$FindBin::Bin/";
33 require 'ispcp_common_code.pl';
34
35 use strict;
36
37 use warnings;
38
39 sub mngr_start_up {
40
41     my ($rs, $rdata) = (undef, undef);
42
43     push_el(\@main::el, 'mngr_start_up()', 'Starting...');
44
45     # lock check;
46
47     $rs = lock_system();
48
49     return $rs if ($rs != 0);
50
51     # Let's clear Execution Logs, if any.
52
53     if (-e $main::ispcp_rqst_mngr_el) {
54
55         $rs = del_file($main::ispcp_rqst_mngr_el);
56
57         return $rs if ($rs != 0);
58
59     }
60
61     # config check;
62
63     $rs = get_conf();
64
65     return $rs if ($rs != 0);
66
67     # sql check;
68
69     my $sql = "select * from admin;";
70
71     ($rs, $rdata) = doSQL($sql);
72
73     return $rs if ($rs != 0);
74
75     push_el(\@main::el, 'mngr_start_up()', 'Ending...');
76
77     return 0;
78
79 }
80
81 sub mngr_shut_down {
82
83     my $rs = undef;
84
85     push_el(\@main::el, 'mngr_shut_down()', 'Starting...');
86
87     $rs = unlock_system();
88
89     return $rs if ($rs != 0);
90
91     push_el(\@main::el, 'mngr_shut_down()', 'Ending...');
92
93     return 0;
94
95 }
96
97 sub mngr_engine {
98
99     my ($rs, $rdata) = (undef, undef);
100
101     push_el(\@main::el, 'mngr_engine()', 'Starting...');
102
103     my $sql;
104
105     #
106     # Proceed tasks, if any.
107     #
108
109     $sql = "select domain_id, domain_name, domain_status from domain where domain_status != 'ok' order by domain_id";
110
111     ($rs, $rdata) = doSQL($sql);
112
113     my $dmn_count = @$rdata;
114
115     if ($dmn_count > 0) {
116
117         foreach (@$rdata) {
118
119             my $row = $_;
120
121             my ($dmn_id, $dmn_name, $dmn_status) = (@$row[0], @$row[1], @$row[2]);
122
123             if (
124                 $dmn_status eq "toadd" ||
125                 $dmn_status eq "change" ||
126                 $dmn_status eq "restore" ||
127                 $dmn_status eq "toenable" ||
128                 $dmn_status eq "todisable"
129                ) {
130
131                 if ($dmn_status eq "restore") {
132
133                     $dmn_count--;
134
135                 }
136
137                 if (defined($main::engine_debug)) {
138
139                     push_el(\@main::el, 'mngr_engine()', "processing $dmn_id, $dmn_name, $dmn_status.");
140
141                 }
142
143                 $rs = sys_command("$main::ispcp_dmn_mngr $dmn_id 1>$main::ispcp_dmn_mngr_stdout 2>$main::ispcp_dmn_mngr_stderr");
144
145                 if ($rs != 0) {
146
147                     if (-e $main::ispcp_dmn_mngr_el) {
148
149                         my $rs1 = undef;
150
151                         pop_el(\@main::el); # removing 'sys_command()' error message;
152
153                         ($rs1, $rdata) = get_el_error($main::ispcp_dmn_mngr_el);
154
155                         return $rs1 if ($rs1 != 0);
156
157                         push_el(\@main::el, $main::ispcp_dmn_mngr, $rdata);
158
159                     }
160
161                     if (!defined($main::engine_debug)) {
162
163                         del_file($main::ispcp_dmn_mngr_stdout); del_file($main::ispcp_dmn_mngr_stderr);
164
165                     }
166
167                     return $rs;
168
169                 }
170
171                 if (!defined($main::engine_debug)) {
172
173                     del_file($main::ispcp_dmn_mngr_stdout); del_file($main::ispcp_dmn_mngr_stderr);
174
175                 }
176
177
178             }
179
180         }
181
182     }
183
184     $sql = "select subdomain_id, subdomain_name, subdomain_status from subdomain where subdomain_status != 'ok' order by subdomain_id";
185
186     ($rs, $rdata) = doSQL($sql);
187
188     my $sub_count = @$rdata;
189
190     if ($sub_count > 0) {
191
192         foreach (@$rdata) {
193
194             my $row = $_;
195
196             my ($sub_id, $sub_name, $sub_status) = (@$row[0], @$row[1], @$row[2]);
197
198             if ($sub_status eq "toadd" || $sub_status eq "change" || $sub_status eq "delete") {
199
200                 if (defined($main::engine_debug)) {
201
202                     push_el(\@main::el, 'mngr_engine()', "processing $sub_id, $sub_name, $sub_status.");
203
204                 }
205
206                 $rs = sys_command("$main::ispcp_sub_mngr $sub_id 1>$main::ispcp_sub_mngr_stdout 2>$main::ispcp_sub_mngr_stderr");
207
208                 if ($rs != 0) {
209
210                     if (-e $main::ispcp_sub_mngr_el) {
211
212                         my $rs1 = undef;
213
214                         pop_el(\@main::el); # removing 'sys_command()' error message;
215
216                         ($rs1, $rdata) = get_el_error($main::ispcp_sub_mngr_el);
217
218                         return $rs1 if ($rs1 != 0);
219
220                         push_el(\@main::el, $main::ispcp_sub_mngr, $rdata);
221
222                     }
223
224                     if (!defined($main::engine_debug)) {
225
226                         del_file($main::ispcp_sub_mngr_stdout); del_file($main::ispcp_sub_mngr_stderr);
227
228                     }
229
230                     return $rs;
231
232                 }
233
234                 if (!defined($main::engine_debug)) {
235
236                     del_file($main::ispcp_sub_mngr_stdout); del_file($main::ispcp_sub_mngr_stderr);
237
238                 }
239
240             }
241
242         }
243
244     }
245
246     $sql = "select alias_id, alias_name, alias_status from domain_aliasses where alias_status != 'ok' order by alias_id";
247
248     ($rs, $rdata) = doSQL($sql);
249
250     my $als_count = @$rdata;
251
252     if ($als_count > 0) {
253
254         foreach (@$rdata) {
255
256             my $row = $_;
257
258             my ($als_id, $als_name, $als_status) = (@$row[0], @$row[1], @$row[2]);
259
260             if ($als_status eq "toadd" || $als_status eq "change" || $als_status eq "delete") {
261
262                 if (defined($main::engine_debug)) {
263
264                     push_el(\@main::el, 'mngr_engine()', "processing $als_id, $als_name, $als_status.");
265
266                 }
267
268                 $rs = sys_command("$main::ispcp_als_mngr $als_id 1>$main::ispcp_als_mngr_stdout 2>$main::ispcp_als_mngr_stderr");
269
270                 if ($rs != 0) {
271
272                     if (-e $main::ispcp_als_mngr_el) {
273
274                         my $rs1 = undef;
275
276                         pop_el(\@main::el); # removing 'sys_command()' error message;
277
278                         ($rs1, $rdata) = get_el_error($main::ispcp_als_mngr_el);
279
280                         return $rs1 if ($rs1 != 0);
281
282                         push_el(\@main::el, $main::ispcp_als_mngr, $rdata);
283
284                     }
285
286                     if (!defined($main::engine_debug)) {
287
288                         del_file($main::ispcp_als_mngr_stdout); del_file($main::ispcp_als_mngr_stderr);
289
290                     }
291
292                     return $rs;
293
294                 }
295
296                 if (!defined($main::engine_debug)) {
297
298                     del_file($main::ispcp_als_mngr_stdout); del_file($main::ispcp_als_mngr_stderr);
299
300                 }
301
302
303             }
304
305         }
306
307     }
308
309     $sql = "select mail_id, mail_acc, status from mail_users where status != 'ok' order by mail_id";
310
311     ($rs, $rdata) = doSQL($sql);
312
313     my $mail_count = @$rdata;
314
315     if ($mail_count > 0) {
316
317         foreach (@$rdata) {
318
319             my $row = $_;
320
321             my ($mail_id, $mail_acc, $mail_status) = (@$row[0], @$row[1], @$row[2]);
322
323             if ($mail_status eq "toadd" || $mail_status eq "change" || $mail_status eq "delete") {
324
325                 if (defined($main::engine_debug)) {
326
327                     push_el(\@main::el, 'mngr_engine()', "processing $mail_id, $mail_acc, $mail_status.");
328
329                 }
330
331             }
332
333             $rs = sys_command("$main::ispcp_mbox_mngr $mail_id 1>$main::ispcp_mbox_mngr_stdout 2>$main::ispcp_mbox_mngr_stderr");
334
335             if ($rs != 0) {
336
337                 if (-e $main::ispcp_mbox_mngr_el) {
338
339                     my $rs1 = undef;
340
341                     pop_el(\@main::el); # removing 'sys_command()' error message;
342
343                     ($rs1, $rdata) = get_el_error($main::ispcp_mbox_mngr_el);
344
345                     return $rs1 if ($rs1 != 0);
346
347                     push_el(\@main::el, $main::ispcp_mbox_mngr, $rdata);
348
349                 }
350
351                 if (!defined($main::engine_debug)) {
352
353                     del_file($main::ispcp_mbox_mngr_stdout); del_file($main::ispcp_mbox_mngr_stderr);
354
355                 }
356
357                 return $rs;
358
359             }
360
361             if (!defined($main::engine_debug)) {
362
363                 del_file($main::ispcp_mbox_mngr_stdout); del_file($main::ispcp_mbox_mngr_stderr);
364
365             }
366
367         }
368
369     }
370
371     if ($dmn_count > 0 || $sub_count > 0 || $als_count > 0 || $mail_count > 0) {
372
373         $rs = sys_command("$main::ispcp_serv_mngr $dmn_count $sub_count $als_count $mail_count 1>$main::ispcp_serv_mngr_stdout 2>$main::ispcp_serv_mngr_stderr");
374
375         if ($rs != 0) {
376
377             if (-e $main::ispcp_serv_mngr_el) {
378
379                 my $rs1 = undef;
380
381                 pop_el(\@main::el); # removing 'sys_command()' error message;
382
383                 ($rs1, $rdata) = get_el_error($main::ispcp_serv_mngr_el);
384
385                 return $rs1 if ($rs1 != 0);
386
387                 push_el(\@main::el, $main::ispcp_serv_mngr, $rdata);
388
389             }
390
391             if (!defined($main::engine_debug)) {
392
393                 del_file($main::ispcp_serv_mngr_stdout); del_file($main::ispcp_serv_mngr_stderr);
394
395             }
396
397             return $rs;
398
399         }
400
401         if (!defined($main::engine_debug)) {
402
403             del_file($main::ispcp_serv_mngr_stdout); del_file($main::ispcp_serv_mngr_stderr);
404
405         }
406
407
408     }
409
410     $sql = "select domain_id, domain_name, domain_status from domain where domain_status != 'ok' order by domain_id";
411
412     ($rs, $rdata) = doSQL($sql);
413
414     $dmn_count = @$rdata;
415
416     if ($dmn_count > 0) {
417
418         foreach (@$rdata) {
419
420             my $row = $_;
421
422             my ($dmn_id, $dmn_name, $dmn_status) = (@$row[0], @$row[1], @$row[2]);
423
424             if ($dmn_status eq "delete") {
425
426                 if (defined($main::engine_debug)) {
427
428                     push_el(\@main::el, 'mngr_engine()', "processing $dmn_id, $dmn_name, $dmn_status.");
429
430                 }
431
432                 $rs = sys_command("$main::ispcp_dmn_mngr $dmn_id 1>$main::ispcp_dmn_mngr_stdout 2>$main::ispcp_dmn_mngr_stderr");
433
434                 if ($rs != 0) {
435
436                     if (-e $main::ispcp_dmn_mngr_el) {
437
438                         my $rs1 = undef;
439
440                         pop_el(\@main::el); # removing 'sys_command()' error message;
441
442                         ($rs1, $rdata) = get_el_error($main::ispcp_dmn_mngr_el);
443
444                         return $rs1 if ($rs1 != 0);
445
446                         push_el(\@main::el, $main::ispcp_dmn_mngr, $rdata);
447
448                     }
449
450                     if (!defined($main::engine_debug)) {
451
452                         del_file($main::ispcp_dmn_mngr_stdout); del_file($main::ispcp_dmn_mngr_stderr);
453
454                     }
455
456                     return $rs;
457
458                 }
459
460                 if (!defined($main::engine_debug)) {
461
462                     del_file($main::ispcp_dmn_mngr_stdout); del_file($main::ispcp_dmn_mngr_stderr);
463
464                 }
465
466
467             }
468
469         }
470
471     }
472
473         #
474         # .htaccess management BEGIN.
475         #
476
477         $sql = "select id, status from htaccess where status != 'ok' order by id";
478
479         ($rs, $rdata) = doSQL($sql);
480
481         my $htuser_count = @$rdata;
482
483         if ($htuser_count > 0) {
484
485                 foreach (@$rdata) {
486
487                         my $row = $_;
488
489                         my ($htuser_id, $htuser_status) = (@$row[0], @$row[1]);
490
491                         if ($htuser_status eq "toadd" || $htuser_status eq "change" || $htuser_status eq "delete") {
492
493                                 push_el(\@main::el, 'mngr_engine()', "processing $htuser_id, $htuser_status.")
494
495                                         if (defined($main::engine_debug));
496
497                                 $rs = sys_command("$main::ispcp_htuser_mngr $htuser_id 1>$main::ispcp_htuser_mngr_stdout 2>$main::ispcp_htuser_mngr_stderr");
498
499                                 if ($rs != 0) {
500
501                                         if (-e $main::ispcp_htuser_mngr_el) {
502
503                                                 my $rs1 = undef;
504
505                                                 pop_el(\@main::el); # removing 'sys_command()' error message;
506
507                                                 ($rs1, $rdata) = get_el_error($main::ispcp_htuser_mngr_el);
508
509                                                 return $rs1 if ($rs1 != 0);
510
511                                                 push_el(\@main::el, $main::ispcp_htuser_mngr, $rdata);
512
513                                         }
514
515                                         if (!defined($main::engine_debug)) {
516
517                                                 del_file($main::ispcp_htuser_mngr_stdout); del_file($main::ispcp_htuser_mngr_stderr);
518
519                                         }
520
521                                         return $rs;
522
523                                 }
524
525                                 if (!defined($main::engine_debug)) {
526
527                                         del_file($main::ispcp_htuser_mngr_stdout); del_file($main::ispcp_htuser_mngr_stderr);
528
529                                 }
530
531                                 sys_command_rs("rm -rf /tmp/htaccess-*");
532
533                         }
534
535                 }
536
537         } else {
538
539                 $sql = "delete from htaccess_users where status = 'delete'";
540                 ($rs, $rdata) = doSQL($sql);
541
542                 $sql = "delete from htaccess_groups where status = 'delete'";
543                 ($rs, $rdata) = doSQL($sql);
544
545                 $sql = "update htaccess_users set status = 'ok' where status = 'toadd' or status = 'change'";
546                 ($rs, $rdata) = doSQL($sql);
547
548                 $sql = "update htaccess_groups set status = 'ok' where status = 'toadd' or status = 'change'";
549                 ($rs, $rdata) = doSQL($sql);
550
551         }
552
553         #
554         # .htaccess management END.
555         #
556
557     push_el(\@main::el, 'mngr_engine()', 'Ending...');
558
559     return 0;
560
561 }
562
563 my $rs = undef;
564
565 $rs = mngr_start_up();
566
567 if ($rs != 0) {
568
569     dump_el(\@main::el, $main::ispcp_rqst_mngr_el);
570
571     mngr_shut_down();
572
573     exit 1;
574
575 }
576
577 $rs = mngr_engine();
578
579 if ($rs != 0) {
580
581     dump_el(\@main::el, $main::ispcp_rqst_mngr_el);
582
583     mngr_shut_down();
584
585     exit 1;
586
587 }
588
589 $rs = mngr_shut_down();
590
591 if ($rs != 0) {
592
593     dump_el(\@main::el, $main::ispcp_rqst_mngr_el);
594
595     exit 1;
596
597 }
Note: See TracBrowser for help on using the browser.