From 78c62257d605c8fa1d6cafa4ad818a8555411d0e Mon Sep 17 00:00:00 2001 From: Dustin Kirkland Date: Wed, 25 May 2011 18:23:27 -0500 Subject: [PATCH] * usr/lib/byobu/ec2_cost, usr/share/byobu/ec2/Makefile.am, usr/share/byobu/ec2/rates.ap_si => usr/share/byobu/ec2/rates.ap- southeast-1, usr/share/byobu/ec2/rates.ap_to => usr/share/byobu/ec2/rates.ap-northeast-1, usr/share/byobu/ec2/rates.eu_ie => usr/share/byobu/ec2/rates.eu- west-1, usr/share/byobu/ec2/rates.us_ca => usr/share/byobu/ec2/us- west-1, usr/share/byobu/ec2/rates.us_va => usr/share/byobu/ec2/rates.us-east-1: - rework ec2_cost entirely, using metaservice; much more accurate --- debian/changelog | 9 ++++ usr/lib/byobu/ec2_cost | 48 ++++++++++--------- usr/share/byobu/ec2/Makefile.am | 2 +- usr/share/byobu/ec2/rates.ap-northeast-1 | 15 ++++++ usr/share/byobu/ec2/rates.ap-southeast-1 | 15 ++++++ usr/share/byobu/ec2/rates.ap_si | 15 ------ usr/share/byobu/ec2/rates.ap_to | 15 ------ usr/share/byobu/ec2/rates.eu-west-1 | 15 ++++++ usr/share/byobu/ec2/rates.eu_ie | 15 ------ usr/share/byobu/ec2/rates.us-east-1 | 15 ++++++ usr/share/byobu/ec2/rates.us_va | 15 ------ .../byobu/ec2/{rates.us_ca => us-west-1} | 0 12 files changed, 95 insertions(+), 84 deletions(-) create mode 100644 usr/share/byobu/ec2/rates.ap-northeast-1 create mode 100644 usr/share/byobu/ec2/rates.ap-southeast-1 delete mode 100644 usr/share/byobu/ec2/rates.ap_si delete mode 100644 usr/share/byobu/ec2/rates.ap_to create mode 100644 usr/share/byobu/ec2/rates.eu-west-1 delete mode 100644 usr/share/byobu/ec2/rates.eu_ie create mode 100644 usr/share/byobu/ec2/rates.us-east-1 delete mode 100644 usr/share/byobu/ec2/rates.us_va rename usr/share/byobu/ec2/{rates.us_ca => us-west-1} (100%) diff --git a/debian/changelog b/debian/changelog index 59aab9d7..1469b07f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -23,6 +23,15 @@ byobu (4.3) unreleased; urgency=low usr/share/byobu/ec2/rates.ap_to, usr/share/byobu/ec2/rates.eu_ie, usr/share/byobu/ec2/rates.us_ca, usr/share/byobu/ec2/rates.us_va: - update AWS prices, add the two new AP zones + * usr/lib/byobu/ec2_cost, usr/share/byobu/ec2/Makefile.am, + usr/share/byobu/ec2/rates.ap_si => usr/share/byobu/ec2/rates.ap- + southeast-1, usr/share/byobu/ec2/rates.ap_to => + usr/share/byobu/ec2/rates.ap-northeast-1, + usr/share/byobu/ec2/rates.eu_ie => usr/share/byobu/ec2/rates.eu- + west-1, usr/share/byobu/ec2/rates.us_ca => usr/share/byobu/ec2/us- + west-1, usr/share/byobu/ec2/rates.us_va => + usr/share/byobu/ec2/rates.us-east-1: + - rework ec2_cost entirely, using metaservice; much more accurate [ Scott Moser ] * usr/lib/byobu/.shutil: fix rounding across a decimal point in fpdiv() diff --git a/usr/lib/byobu/ec2_cost b/usr/lib/byobu/ec2_cost index fb82edc4..365b3d97 100755 --- a/usr/lib/byobu/ec2_cost +++ b/usr/lib/byobu/ec2_cost @@ -31,30 +31,32 @@ for arg in $@; do esac done -# Get the going rates -[ -r "$DATA/ec2_rates" ] || ln -s $BYOBU_PREFIX/share/$PKG/ec2/rates.us_ca "$DATA/ec2_rates" -. "$DATA/ec2_rates" || exit 1 - -# Count CPUs, Memory, Architecture -cpu=$(grep -c "^processor.*:" /proc/cpuinfo) || cpu=1 -mem=$(grep ^MemTotal /proc/meminfo | awk '{print $2}') - -# Guess this system's going rate, based on mem available (m* types) -if [ $mem -lt 700000 ]; then - RATE=$T1_MICRO -elif [ $mem -gt 64000000 ]; then - RATE=$M2_4XLARGE -elif [ $mem -gt 32000000 ]; then - RATE=$M2_2XLARGE -elif [ $mem -gt 16000000 ]; then - RATE=$M2_XLARGE -elif [ $mem -gt 14000000 ]; then - RATE=$M1_XLARGE -elif [ $mem -gt 7000000 ]; then - RATE=$M1_LARGE +# Try to use metadata service +zone=$(wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || echo "us-east-1") +. "$BYOBU_PREFIX/share/$PKG/ec2/rates.$zone" +if type=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-type); then + RATE=$(eval ${type/./_}) else - # Otherwise, scale based on number of cpu's (c* types) - RATE=$(echo "$cpu" "$M1_SMALL" | awk '{printf "%f", $1*$2}') + # Count CPUs, Memory, Architecture + cpu=$(grep -c "^processor.*:" /proc/cpuinfo) || cpu=1 + mem=$(grep ^MemTotal /proc/meminfo | awk '{print $2}') + # Guess this system's going rate, based on mem available (m* types) + if [ $mem -lt 700000 ]; then + RATE=$T1_MICRO + elif [ $mem -gt 64000000 ]; then + RATE=$M2_4XLARGE + elif [ $mem -gt 32000000 ]; then + RATE=$M2_2XLARGE + elif [ $mem -gt 16000000 ]; then + RATE=$M2_XLARGE + elif [ $mem -gt 14000000 ]; then + RATE=$M1_XLARGE + elif [ $mem -gt 7000000 ]; then + RATE=$M1_LARGE + else + # Otherwise, scale based on number of cpu's (c* types) + RATE=$(echo "$cpu" "$M1_SMALL" | awk '{printf "%f", $1*$2}') + fi fi # Data Transfer Cost Basis diff --git a/usr/share/byobu/ec2/Makefile.am b/usr/share/byobu/ec2/Makefile.am index 73de0828..1037dab4 100644 --- a/usr/share/byobu/ec2/Makefile.am +++ b/usr/share/byobu/ec2/Makefile.am @@ -1,2 +1,2 @@ ec2dir = $(datadir)/@PACKAGE@/ec2 -ec2_DATA = rates.eu_ie rates.us_ca rates.us_va rates.ap_si rates.ap_to +ec2_DATA = rates.ap-northeast-1 rates.ap-southeast-1 rates.eu-west-1 rates.us-east-1 diff --git a/usr/share/byobu/ec2/rates.ap-northeast-1 b/usr/share/byobu/ec2/rates.ap-northeast-1 new file mode 100644 index 00000000..1567f59b --- /dev/null +++ b/usr/share/byobu/ec2/rates.ap-northeast-1 @@ -0,0 +1,15 @@ +# 2011-05-25: Approximate Instance Cost Basis per hour from +# http://aws.amazon.com/ec2/instance-types/ +# http://aws.amazon.com/ec2/pricing/ +# for AP - Tokyo +m1_small="0.10" +m1_large="0.40" +m1_xlarge="0.80" +t1_micro="0.027" +m2_xlarge="0.60" +m2_2xlarge="1.20" +m2_4xlarge="2.39" +c1_medium="0.20" +c1_xlarge="0.80" +cc1_4xlarge="1.60" +cg1_4xlarge="2.10" diff --git a/usr/share/byobu/ec2/rates.ap-southeast-1 b/usr/share/byobu/ec2/rates.ap-southeast-1 new file mode 100644 index 00000000..6afeb87a --- /dev/null +++ b/usr/share/byobu/ec2/rates.ap-southeast-1 @@ -0,0 +1,15 @@ +# 2011-05-25: Approximate Instance Cost Basis per hour from +# http://aws.amazon.com/ec2/instance-types/ +# http://aws.amazon.com/ec2/pricing/ +# for AP - Singapore +m1_small="0.095" +m1_large="0.38" +m1_xlarge="0.76" +t1_micro="0.025" +m2_xlarge="0.57" +m2_2xlarge="1.14" +m2_4xlarge="2.28" +c1_medium="0.19" +c1_xlarge="0.76" +cc1_4xlarge="1.60" +cg1_4xlarge="2.10" diff --git a/usr/share/byobu/ec2/rates.ap_si b/usr/share/byobu/ec2/rates.ap_si deleted file mode 100644 index 4ad0484a..00000000 --- a/usr/share/byobu/ec2/rates.ap_si +++ /dev/null @@ -1,15 +0,0 @@ -# 2011-05-25: Approximate Instance Cost Basis per hour from -# http://aws.amazon.com/ec2/instance-types/ -# http://aws.amazon.com/ec2/pricing/ -# for AP - Singapore -M1_SMALL="0.095" -M1_LARGE="0.38" -M1_XLARGE="0.76" -T1_MICRO="0.025" -M2_XLARGE="0.57" -M2_2XLARGE="1.14" -M2_4XLARGE="2.28" -C1_MEDIUM="0.19" -C1_XLARGE="0.76" -CC1_4XLARGE="1.60" -CG1_4XLARGE="2.10" diff --git a/usr/share/byobu/ec2/rates.ap_to b/usr/share/byobu/ec2/rates.ap_to deleted file mode 100644 index ff10aed6..00000000 --- a/usr/share/byobu/ec2/rates.ap_to +++ /dev/null @@ -1,15 +0,0 @@ -# 2011-05-25: Approximate Instance Cost Basis per hour from -# http://aws.amazon.com/ec2/instance-types/ -# http://aws.amazon.com/ec2/pricing/ -# for AP - Tokyo -M1_SMALL="0.10" -M1_LARGE="0.40" -M1_XLARGE="0.80" -T1_MICRO="0.027" -M2_XLARGE="0.60" -M2_2XLARGE="1.20" -M2_4XLARGE="2.39" -C1_MEDIUM="0.20" -C1_XLARGE="0.80" -CC1_4XLARGE="1.60" -CG1_4XLARGE="2.10" diff --git a/usr/share/byobu/ec2/rates.eu-west-1 b/usr/share/byobu/ec2/rates.eu-west-1 new file mode 100644 index 00000000..995f6200 --- /dev/null +++ b/usr/share/byobu/ec2/rates.eu-west-1 @@ -0,0 +1,15 @@ +# 2011-05-25: Approximate Instance Cost Basis per hour from +# http://aws.amazon.com/ec2/instance-types/ +# http://aws.amazon.com/ec2/pricing/ +# for EU - Ireland +m1_small="0.095" +m1_large="0.38" +m1_xlarge="0.76" +t1_micro="0.025" +m2_xlarge="0.57" +m2_2xlarge="1.14" +m2_4xlarge="2.28" +c1_medium="0.19" +c1_xlarge="0.76" +cc1_4xlarge="1.60" +cg1_4xlarge="2.10" diff --git a/usr/share/byobu/ec2/rates.eu_ie b/usr/share/byobu/ec2/rates.eu_ie deleted file mode 100644 index ecf0e5de..00000000 --- a/usr/share/byobu/ec2/rates.eu_ie +++ /dev/null @@ -1,15 +0,0 @@ -# 2011-05-25: Approximate Instance Cost Basis per hour from -# http://aws.amazon.com/ec2/instance-types/ -# http://aws.amazon.com/ec2/pricing/ -# for EU - Ireland -M1_SMALL="0.095" -M1_LARGE="0.38" -M1_XLARGE="0.76" -T1_MICRO="0.025" -M2_XLARGE="0.57" -M2_2XLARGE="1.14" -M2_4XLARGE="2.28" -C1_MEDIUM="0.19" -C1_XLARGE="0.76" -CC1_4XLARGE="1.60" -CG1_4XLARGE="2.10" diff --git a/usr/share/byobu/ec2/rates.us-east-1 b/usr/share/byobu/ec2/rates.us-east-1 new file mode 100644 index 00000000..bf6c0b0c --- /dev/null +++ b/usr/share/byobu/ec2/rates.us-east-1 @@ -0,0 +1,15 @@ +# 2011-05-25: Approximate Instance Cost Basis per hour from +# http://aws.amazon.com/ec2/instance-types/ +# http://aws.amazon.com/ec2/pricing/ +# for US - N. Virginia +m1_small="0.085" +m1_large="0.34" +m1_xlarge="0.68" +t1_micro="0.02" +m2_xlarge="0.50" +m2_2xlarge="1.00" +m2_4xlarge="2.00" +c1_medium="0.17" +c1_xlarge="0.68" +cc1_4xlarge="1.60" +cg1_4xlarge="2.10" diff --git a/usr/share/byobu/ec2/rates.us_va b/usr/share/byobu/ec2/rates.us_va deleted file mode 100644 index 73149083..00000000 --- a/usr/share/byobu/ec2/rates.us_va +++ /dev/null @@ -1,15 +0,0 @@ -# 2011-05-25: Approximate Instance Cost Basis per hour from -# http://aws.amazon.com/ec2/instance-types/ -# http://aws.amazon.com/ec2/pricing/ -# for US - N. Virginia -M1_SMALL="0.085" -M1_LARGE="0.34" -M1_XLARGE="0.68" -T1_MICRO="0.02" -M2_XLARGE="0.50" -M2_2XLARGE="1.00" -M2_4XLARGE="2.00" -C1_MEDIUM="0.17" -C1_XLARGE="0.68" -CC1_4XLARGE="1.60" -CG1_4XLARGE="2.10" diff --git a/usr/share/byobu/ec2/rates.us_ca b/usr/share/byobu/ec2/us-west-1 similarity index 100% rename from usr/share/byobu/ec2/rates.us_ca rename to usr/share/byobu/ec2/us-west-1