You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
865 B
Python

import csv, re, operator, oursql
db = oursql.connect(host="localhost", user="root", passwd="", db="transfer")
reader = csv.reader(open("sizes.csv", "r"))
sizes = {}
for entry in reader:
size, vpsid = entry
if re.match("[0-9]+", vpsid):
sizes[vpsid] = int(size)
#print "%s => %.2fG" % (vpsid, int(size) / 1024.0 / 1024.0)
sorted_list = sorted(sizes.iteritems(), key=operator.itemgetter(1))
c = db.cursor()
for vpsid, size in sorted_list:
c.execute("UPDATE entries SET `DiskUsage` = ? WHERE `VpsID` = ?", (size, vpsid))
c.execute("SELECT * FROM entries ORDER BY `TargetNode` ASC, `DiskUsage` ASC")
results = c.fetchall()
servers = {}
for row in results:
nodename = row[4]
try:
servers[nodename] += 1
except KeyError, e:
servers[nodename] = 1
c.execute("UPDATE entries SET `Position` = ? WHERE `Id` = ?", (servers[nodename], row[0]))