use MYDan::Oncall::Policy; MYDan::Oncall::Policy->new( $conf )->dump( $cache ); my $policy = MYDan::Oncall::Policy->load( $cache ); my $now = time; my $level = 2; $policy->set( $now - 86400, $now + 86400 ); my $who = $policy->get( $now, $level ); my %list = $policy->list( $level );
A YAML file that contains a stream of site definitions, each a HASH with the following keys:
required:
pivot: a date expression, for rotation queue: a list of items to rotate through
optional:
site: default '', name of site period: default 1 timezone: default 'local' duration: default '00:00 ~ 23:59' day: days of coverage, default all level: levels of coverage, default all reverse: default 0, reverse escalation order if 1
Coverage is processed in sequential order until met or defaulted to the last site ( or in reverse order, and default to the first site if 'reverse' is set )
Hence duration, level, and day do not apply to the default site.
example:
--- site: cn pivot: 2017.06.10 queue: - user1 - user2 - user3 --- site: us pivot: 2017.06.11 20:00 timezone: America/Los_Angeles duration: '19:10 ~ 7:20' period: 7 level: [ 1, 2 ] day: [ 1, 2, 3, 4, 5 ] queue: - usr1 - usr2 - usr3
Loads object from $path
Dumps object to $path
Sets the scope
Returns the event at $time for $level
Returns a HASH of events indexed by time for $level
To install MYDan, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MYDan
CPAN shell
perl -MCPAN -e shell install MYDan
For more information on module installation, please visit the detailed CPAN module installation guide.