line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Serengeti::Session::Persistent; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
4
|
use strict; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
28
|
|
4
|
1
|
|
|
1
|
|
5
|
use warnings; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
22
|
|
5
|
|
|
|
|
|
|
|
6
|
1
|
|
|
1
|
|
4
|
use File::Spec; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
25
|
|
7
|
1
|
|
|
1
|
|
5
|
use File::Path qw(mkpath); |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
65
|
|
8
|
|
|
|
|
|
|
|
9
|
1
|
|
|
1
|
|
5
|
use base qw(Serengeti::Session); |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
128
|
|
10
|
|
|
|
|
|
|
|
11
|
1
|
|
|
1
|
|
989
|
use accessors qw(log); |
|
1
|
|
|
|
|
1116
|
|
|
1
|
|
|
|
|
8
|
|
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
sub new { |
14
|
1
|
|
|
1
|
0
|
2
|
my ($pkg, $args) = @_; |
15
|
|
|
|
|
|
|
|
16
|
1
|
|
|
|
|
3
|
my $name = $args->{name}; |
17
|
|
|
|
|
|
|
|
18
|
1
|
|
|
|
|
2
|
my $parent; |
19
|
1
|
50
|
|
|
|
4
|
if (exists $args->{parent_dir}) { |
20
|
0
|
|
|
|
|
0
|
$parent = $args->{parent_dir}; |
21
|
0
|
0
|
|
|
|
0
|
$parent = File::Spec->catdir(@$parent) if ref $parent eq "ARRAY"; |
22
|
|
|
|
|
|
|
} |
23
|
|
|
|
|
|
|
else { |
24
|
1
|
|
|
|
|
117
|
$parent = File::Spec->tmpdir; |
25
|
1
|
|
|
|
|
188
|
warn "No parent_dir supplied, assuming tmpdir which is: $parent"; |
26
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
} |
28
|
|
|
|
|
|
|
|
29
|
1
|
|
|
|
|
14
|
my $session_dir = File::Spec->catdir($parent, $name); |
30
|
1
|
50
|
|
|
|
26
|
mkpath($session_dir) unless -e $session_dir; |
31
|
|
|
|
|
|
|
|
32
|
1
|
|
|
|
|
15
|
my $log_path = File::Spec->catfile($session_dir, "actions.log"); |
33
|
1
|
50
|
|
|
|
132
|
open my $log, ">", $log_path or die "Can't open session log: $!"; |
34
|
|
|
|
|
|
|
|
35
|
1
|
|
|
|
|
10
|
my $self = bless { |
36
|
|
|
|
|
|
|
name => $name, |
37
|
|
|
|
|
|
|
session_dir => $session_dir, |
38
|
|
|
|
|
|
|
log => $log, |
39
|
|
|
|
|
|
|
stash => {}, |
40
|
|
|
|
|
|
|
}, $pkg; |
41
|
|
|
|
|
|
|
|
42
|
1
|
|
|
|
|
6
|
$self->log_action("Created session", "backend: foo"); |
43
|
|
|
|
|
|
|
|
44
|
1
|
|
|
|
|
5
|
return $self; |
45
|
|
|
|
|
|
|
} |
46
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
sub log_action { |
48
|
1
|
|
|
1
|
0
|
4
|
my ($self, $action, @info) = @_; |
49
|
|
|
|
|
|
|
|
50
|
1
|
|
|
|
|
9
|
my $log = $self->{log}; |
51
|
1
|
50
|
|
|
|
5
|
return unless $log; |
52
|
1
|
|
|
|
|
24
|
my ($sec, $min, $hour, $day, $mon, $year) = gmtime(time); |
53
|
|
|
|
|
|
|
|
54
|
1
|
|
|
|
|
11
|
my $ts = sprintf("%4d-%02d-%02d %02d:%02d:%02d", |
55
|
|
|
|
|
|
|
$year + 1900, $mon + 1, $day, $hour, $min, $sec); |
56
|
|
|
|
|
|
|
|
57
|
1
|
|
|
|
|
20
|
print $log "[$ts] $action - ", join(" | ", @info), "\n"; |
58
|
|
|
|
|
|
|
|
59
|
1
|
|
|
|
|
4
|
1; |
60
|
|
|
|
|
|
|
} |
61
|
|
|
|
|
|
|
|
62
|
|
|
|
|
|
|
sub DESTROY { |
63
|
1
|
|
|
1
|
|
1212
|
my $self = shift; |
64
|
|
|
|
|
|
|
} |
65
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
1; |