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.
77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
#!/usr/bin/env python
|
|
from collections import OrderedDict
|
|
import csv
|
|
|
|
reader = csv.reader(open("input.csv", "r"))
|
|
sorted_list = {}
|
|
|
|
locations = {
|
|
"IL": ["64.79.106.219", "64.79.106.220", "64.79.106.221"],
|
|
"CA": ["nitrogen.bluevm.com", "oxygen.bluevm.com", "phosphorus.bluevm.com", "carbon.bluevm.com", "helium.bluevm.com", "lithium.bluevm.com", "neon.bluevm.com", "argon.bluevm.com"],
|
|
"ATL": ["calcium.bluevm.com", "magnesium.bluevm.com", "silicon.bluevm.com", "sodium.bluevm.com"],
|
|
"TX": ["nickel.bluevm.com"]
|
|
}
|
|
|
|
new_servers = {
|
|
"IL": OrderedDict({12: 1, 34: 1, 56: 1}),
|
|
"CA": OrderedDict({12: 2, 34: 3, 56: 1}),
|
|
"ATL": OrderedDict({12: 1, 34: 2, 56: 1}),
|
|
"TX": OrderedDict({12: 1, 34: 1, 56: 1})
|
|
}
|
|
|
|
new = {}
|
|
|
|
for location, x in new_servers.iteritems():
|
|
sorted_list[location] = OrderedDict({})
|
|
sorted_list[location][12] = []
|
|
sorted_list[location][34] = []
|
|
sorted_list[location][56] = []
|
|
|
|
for vps in reader:
|
|
username, vpsid, current, plan = vps
|
|
|
|
location = ""
|
|
|
|
for loc, hosts in locations.iteritems():
|
|
if current in hosts:
|
|
location = loc
|
|
|
|
if location == "":
|
|
print "No location specified for %s" % (repr(vps))
|
|
continue
|
|
|
|
if "blue1" in plan or "blue2" in plan or "lebletspecial" in plan or "vps1" in plan or "vps2" in plan:
|
|
sorted_list[location][12].append((username, vpsid))
|
|
elif "blue3" in plan or "blue4" in plan or "vps3" in plan or "vps4" in plan:
|
|
sorted_list[location][34].append((username, vpsid))
|
|
elif "blue5" in plan or "blue6" in plan or "presale" in plan or "vps5" in plan or "vps6" in plan:
|
|
sorted_list[location][56].append((username, vpsid))
|
|
|
|
for location, items in new_servers.iteritems():
|
|
new[location] = OrderedDict({})
|
|
|
|
for category, count in items.iteritems():
|
|
for i in xrange(0, count):
|
|
new[location][i] = []
|
|
|
|
for location, items in sorted_list.iteritems():
|
|
current_server = 0
|
|
|
|
for category, vpses in items.iteritems():
|
|
total_vpses = len(vpses)
|
|
total_servers = new_servers[location][category]
|
|
per_server = total_vpses / total_servers
|
|
|
|
for i in xrange(0, total_servers):
|
|
start = per_server * i
|
|
end = (per_server * (i + 1)) - 1
|
|
|
|
if end + 2 >= total_vpses:
|
|
end = total_vpses - 1
|
|
|
|
current_server += 1
|
|
hostname = "s%d.c%d.%s.bluevm.com" % (current_server, category, location.lower())
|
|
|
|
for s in xrange(start, end + 1):
|
|
print "%s,%s,%s" % (vpses[s][0], vpses[s][1], hostname)
|