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
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]))
|
|
|
|
|