added prices for notifications
This commit is contained in:
parent
6d1b01a048
commit
fafc102ec8
17
notify.pl
17
notify.pl
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019-2021 Mischa Peters <mischa @ openbsd.amsterdam>
|
# Copyright (c) 2019-2022 Mischa Peters <mischa @ openbsd.amsterdam>
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
# purpose with or without fee is hereby granted, provided that the above
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
@ -17,6 +17,7 @@
|
||||||
# vmm(4)/vmd(8) VM notify script for OpenBSD Amsterdam
|
# vmm(4)/vmd(8) VM notify script for OpenBSD Amsterdam
|
||||||
# 2020/05/17 initial release
|
# 2020/05/17 initial release
|
||||||
# 2021/05/09 complete restructure and KISS
|
# 2021/05/09 complete restructure and KISS
|
||||||
|
# 2022/11/13 added price structure for notifications
|
||||||
#
|
#
|
||||||
use 5.024;
|
use 5.024;
|
||||||
use strict;
|
use strict;
|
||||||
|
@ -30,6 +31,11 @@ use File::Basename;
|
||||||
my $function = $ARGV[0] || "empty";
|
my $function = $ARGV[0] || "empty";
|
||||||
my $function_variable = $ARGV[1] || "empty";
|
my $function_variable = $ARGV[1] || "empty";
|
||||||
|
|
||||||
|
# define the prices for the different components of the VM
|
||||||
|
my $base_price = '60';
|
||||||
|
my %memory_prices = ('2G' => '10', '4G' => '30', '8G' => '70');
|
||||||
|
my %hdd_prices = ('50G' => '50', '100G' => '100', '150G' => '150', '200G' => '200');
|
||||||
|
|
||||||
# fuction to parse _deploy.conf and vm*.txt files
|
# fuction to parse _deploy.conf and vm*.txt files
|
||||||
# all variables are stripped and added to either %vms or %conf
|
# all variables are stripped and added to either %vms or %conf
|
||||||
sub get_variables {
|
sub get_variables {
|
||||||
|
@ -97,6 +103,12 @@ sub mailout {
|
||||||
my $_email = $vms{$vm_name}{'email'};
|
my $_email = $vms{$vm_name}{'email'};
|
||||||
my $_hostname = $vms{$vm_name}{'hostname'};
|
my $_hostname = $vms{$vm_name}{'hostname'};
|
||||||
my $_username = $vms{$vm_name}{'username'};
|
my $_username = $vms{$vm_name}{'username'};
|
||||||
|
my $_memory = $vms{$vm_name}{'memory'} || '';
|
||||||
|
my $_disk2 = $vms{$vm_name}{'disk2'} || '';
|
||||||
|
|
||||||
|
my $memory_price = $memory_prices{$_memory} || '0';
|
||||||
|
my $hdd_price = $hdd_prices{$_disk2} || '0';
|
||||||
|
my $price = $base_price + $memory_price + $hdd_price;
|
||||||
|
|
||||||
(my $_firstname, my $_lastname) = split(/ /, $_name, 2);
|
(my $_firstname, my $_lastname) = split(/ /, $_name, 2);
|
||||||
(my $_year, my $_month, my $_day) = split(/\//, $_date, 3);
|
(my $_year, my $_month, my $_day) = split(/\//, $_date, 3);
|
||||||
|
@ -125,6 +137,7 @@ sub mailout {
|
||||||
$row =~ s/TOTAL_VMS/$total_vms/g;
|
$row =~ s/TOTAL_VMS/$total_vms/g;
|
||||||
$row =~ s/TOTAL_HOSTS/$total_hosts/g;
|
$row =~ s/TOTAL_HOSTS/$total_hosts/g;
|
||||||
$row =~ s/PAYMENT/$_payment/g;
|
$row =~ s/PAYMENT/$_payment/g;
|
||||||
|
$row =~ s/PRICE/$price/g;
|
||||||
|
|
||||||
if ($row =~ /TIME\((.*)\)/) {
|
if ($row =~ /TIME\((.*)\)/) {
|
||||||
my @TIMES = split(/,/, $1);
|
my @TIMES = split(/,/, $1);
|
||||||
|
@ -133,7 +146,7 @@ sub mailout {
|
||||||
print $fh_email "$row\n";
|
print $fh_email "$row\n";
|
||||||
}
|
}
|
||||||
close $fh_email;
|
close $fh_email;
|
||||||
print "$function: $_date, $_payment, $_name, $_email, $_hostname, $_server ($vm_name), $ip4address\n";
|
print "$function: $_date, $_payment ($price), $_name, $_email, $_hostname, $_server ($vm_name), $ip4address\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue