/[smecontribs]/rpms/smeserver-arkeia/contribs7/smeserver-arkeia-1.0-rotate.patch
ViewVC logotype

Annotation of /rpms/smeserver-arkeia/contribs7/smeserver-arkeia-1.0-rotate.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Tue Nov 25 16:20:18 2008 UTC (15 years, 6 months ago) by slords
Branch: MAIN
CVS Tags: smeserver-arkeia-1_0-22_el4_sme, smeserver-arkeia-1_0-21_el4_sme, smeserver-arkeia-1_0-26_el4_sme, smeserver-arkeia-1_0-29_el4_sme, smeserver-arkeia-1_0-20_el4_sme, smeserver-arkeia-1_0-18_el4_sme, smeserver-arkeia-1_0-27_el4_sme, smeserver-arkeia-1_0-19_el4_sme, HEAD
Changes since 1.2: +0 -0 lines
Restore

1 slords 1.1 diff -Nur -x '*.orig' -x '*.rej' smeserver-arkeia-1.0/createlinks mezzanine_patched_smeserver-arkeia-1.0/createlinks
2     --- smeserver-arkeia-1.0/createlinks 2007-07-10 09:31:38.000000000 -0600
3     +++ mezzanine_patched_smeserver-arkeia-1.0/createlinks 2007-07-10 09:19:59.000000000 -0600
4     @@ -13,6 +13,7 @@
5    
6     foreach my $event (qw(pre-backup))
7     {
8     + event_link("rotate-tape", $event, "05");
9     event_link("arkeia-delete-dumped-catalog", $event, "11");
10     event_link("arkeia-dump-catalog", $event, "21");
11     event_link("arkeia-recycle-tape", $event, "60");
12     diff -Nur -x '*.orig' -x '*.rej' smeserver-arkeia-1.0/root/etc/e-smith/events/actions/rotate-tape mezzanine_patched_smeserver-arkeia-1.0/root/etc/e-smith/events/actions/rotate-tape
13     --- smeserver-arkeia-1.0/root/etc/e-smith/events/actions/rotate-tape 1969-12-31 17:00:00.000000000 -0700
14     +++ mezzanine_patched_smeserver-arkeia-1.0/root/etc/e-smith/events/actions/rotate-tape 2007-07-10 09:31:34.000000000 -0600
15     @@ -0,0 +1,56 @@
16     +#!/usr/bin/perl -w
17     +
18     +package esmith;
19     +
20     +use strict;
21     +use esmith::ConfigDB;
22     +use POSIX qw(floor);
23     +
24     +sub max ($$) { $_[$_[0] < $_[1]] };
25     +
26     +my $event = shift;
27     +my $cause = shift;
28     +exit 0 if not defined $cause or $cause ne "tape";
29     +
30     +my $confdb = esmith::ConfigDB->open;
31     +my $arkeia = $confdb->get('arkeia') or die "No arkeia db entry found\n";
32     +my $rotate = $arkeia->prop('Rotate') || 'no';
33     +my $changer = $arkeia->prop('Changer') || '/dev/changer';
34     +
35     +exit 0 unless $rotate eq 'yes';
36     +exit 0 unless -c $changer;
37     +
38     +my $daily = $arkeia->prop("Daily") || 0;
39     +my $weekly = $arkeia->prop("Weekly") || 0;
40     +my $monthly = $arkeia->prop("Monthly") || 0;
41     +my $quarterly = $arkeia->prop("Quarterly") || 0;
42     +my $yearly = $arkeia->prop("Yearly") || 0;
43     +
44     +my $base = int(time()/86400);
45     +my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($base*86400);
46     +my $y = $yearly ? max(($year-69) - ($yday <= $wday ? 1 : 0), 0) : 0;
47     +my $q = $quarterly ? max(($year-70)*4 + int($mon/3) - ($mon % 3 == 0 && $mday <= $wday ? 1 : 0) + 1 - $y, 0) : 0;
48     +my $m = $monthly ? max(($year-70)*12 + $mon - ($mday <= $wday ? 1 : 0) + 1 - $y - $q, 0) : 0;
49     +my $w = $weekly ? max(floor(($base-3)/7) + 1 - $y - $q - $m, 0) : 0;
50     +my $d = $daily ? max($base - 2 - $y - $q - $m - $w, 0) : 0;
51     +
52     +my $slot = 0;
53     +if ( $wday ) {
54     + $slot = ($d - 1) % $daily + 1;
55     +} else {
56     + if ( $yearly && $yday <= 7 ) {
57     + $slot = $daily + $weekly + $monthly + $quarterly + ($y - 1) % $yearly + 1;
58     + } elsif ( $quarterly && $mon % 3 == 0 && $mday <= 7 ) {
59     + $slot = $daily + $weekly + $monthly + ($q - 1) % $quarterly + 1;
60     + } elsif ( $monthly && $mday <= 7 ) {
61     + $slot = $daily + $weekly + ($m - 1) % $monthly + 1;
62     + } elsif ( $weekly ) {
63     + $slot = $daily + ($w - 1) % $weekly + 1;
64     + } else {
65     + $slot = ($d - 1) % $daily + 1;
66     + }
67     +}
68     +exit 0 unless $slot;
69     +
70     +system("/usr/sbin/mtx -f $changer unload &> /dev/null");
71     +system("/usr/sbin/mtx -f $changer load $slot") && die("A problem occurred execing mtx\n");

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed