From: Brian Warner <warner@allmydata.com>
Date: Mon, 10 Sep 2007 22:46:45 +0000 (-0700)
Subject: provisioning: include the cost of replacing failed hard drives
X-Git-Url: https://git.rkrishnan.org/specifications/vdrive/index.php?a=commitdiff_plain;h=89a25f198791b7edbd9d6f852e92035e02428fc5;p=tahoe-lafs%2Ftahoe-lafs.git

provisioning: include the cost of replacing failed hard drives
---

diff --git a/src/allmydata/provisioning.py b/src/allmydata/provisioning.py
index d0ae5d1f..93164e87 100644
--- a/src/allmydata/provisioning.py
+++ b/src/allmydata/provisioning.py
@@ -604,16 +604,10 @@ class ProvisioningTool(rend.Page):
             server_bandwidth_mbps = mathutil.div_ceil(int(server_bandwidth*8),
                                                       int(1e6))
             server_monthly_cost = 70*server_bandwidth_mbps + 44
-            total_server_monthly_cost = float(num_servers * server_monthly_cost)
             add_output("Servers", T.div["Monthly cost per server: $",
                                         server_monthly_cost])
-            add_output("Grid", T.div["Monthly cost for all servers: $",
-                                     number(total_server_monthly_cost)])
             add_output("Users", T.div["Capital cost per user: $",
                                       number(total_server_cost / num_users)])
-            add_output("Users",
-                       T.div["Monthly cost per user: $",
-                             number(total_server_monthly_cost / num_users)])
 
             # reliability
             any_drive_failure_rate = total_drives * drive_failure_rate
@@ -622,6 +616,21 @@ class ProvisioningTool(rend.Page):
             add_output("Drives",
                        T.div["MTBF (any drive): ",
                              number(any_drive_MTBF_days), " days"])
+            drive_replacement_monthly_cost = (float(drive_cost)
+                                              * any_drive_failure_rate
+                                              *30*86400)
+            add_output("Grid",
+                       T.div["Monthly cost of replacing drives: $",
+                             number(drive_replacement_monthly_cost)])
+
+            total_server_monthly_cost = float(num_servers * server_monthly_cost
+                                              + drive_replacement_monthly_cost)
+
+            add_output("Grid", T.div["Monthly cost for all servers: $",
+                                     number(total_server_monthly_cost)])
+            add_output("Users",
+                       T.div["Monthly cost per user: $",
+                             number(total_server_monthly_cost / num_users)])
 
             # availability
             file_dBA = self.file_availability(k, n, server_dBA)