Index: spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/planner.py =================================================================== --- spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/planner.py (revision 1971) +++ spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/planner.py (working copy) @@ -10,11 +10,11 @@  container.ramfree -= vhost.ram    def show_container(self, c): - width = 40 + width = 20  frac = width - float(c.ramfree) / float(c.ram) * width  print """%s:  CPUs: %s x %s - RAM: [%s%s] %s / %s""" % (c.name, c.cpu, c.arch, int(frac)*'#', int(width-frac)*'_', c.ramfree, c.ram) + RAM: [%s%s] %s MB/%s MB free""" % (c.name, c.cpu, c.arch, int(frac)*'#', int(width-frac)*'_', c.ramfree, c.ram)  print """ Domains: """  for n in c.nodes:  print " %s" % n @@ -83,10 +83,10 @@  for name, res_memory, res_cpus, res_arch, run_state in self.fetch_containers():  containers[name] = Container(name, res_memory, res_cpus, res_arch)  # FIXME: Hard coded containers - containers['zeus.sikkerhed.org'].ram = 10240 - containers['zeus.sikkerhed.org'].ramfree = 10240 - containers['hera.sikkerhed.org'].ram = 10240 - containers['hera.sikkerhed.org'].ramfree = 10240 + #containers['zeus.sikkerhed.org'].ram = 10240 + #containers['zeus.sikkerhed.org'].ramfree = 10240 + #containers['hera.sikkerhed.org'].ram = 10240 + #containers['hera.sikkerhed.org'].ramfree = 10240  self.print_debug("Available containers: %s", containers)    # enumerate allocated hosts @@ -109,19 +109,18 @@  nodes = allocated_nodes + pending_nodes  #self.show_cluster(nodes, containers)  self.ffd(pending_nodes, containers) - #self.show_cluster(nodes, containers) + self.show_cluster(nodes, containers)  self.allocate_nodes(nodes)    def allocate_nodes(self, nodes):  """In a transaction, set allocation_pending=false, parent=node.container.name for all allocated hosts.""" - db = self.db_connect() - # FIXME: Begin transaction + #db = self.db_connect(unique=True)  for n in nodes:  if n.container: - #res = db.query("UPDATE resourcenode SET parent = %s, allocation_pending = false WHERE node = %s", n.name, n.container.name) - self.print_note("UPDATE resourcenode SET parent = %s, allocation_pending = false WHERE node = %s", n.name, n.container.name) - # FIXME: Commit - return  + #db.execute("UPDATE resourcenode SET parent = %s, allocation_pending = false WHERE node = %s", n.container.name, n.name) + self.print_note("UPDATE resourcenode SET parent = %s, allocation_pending = false WHERE node = %s", n.container.name, n.name) + return + return db.commit()      class Host: @@ -132,7 +131,7 @@  self.arch = arch    def __str__(self): - return "" + return ""    def __repr__(self):  return str(self) Index: spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/config.py =================================================================== --- spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/config.py (revision 1971) +++ spye-metaconfig/spye-metaconfig/plugins/metaconfig/server/config.py (working copy) @@ -15,8 +15,11 @@  password = data["%s_password" % prefix])    def meta_status(self, node, operations): + print node  db = self.db_connect() + print node  bootstrap = operations == None + print node  if not bootstrap:  data = pickle.dumps(operations, 0)  last = db.fetch_dict("SELECT * FROM configlog WHERE node = %s ORDER BY date_end DESC LIMIT 1", node) @@ -26,7 +29,11 @@  db.execute_and_commit("INSERT INTO configlog (node, diff, date_end) VALUES (%s, %s, now())", node, data)    fields = ", ".join("%s_%s" % (p, s) for p in ("components", "profiles", "nodes") for s in ("url", "rev", "username", "password")) + print node + print "SELECT %s, update_pending FROM confignode WHERE node = %%s" % fields +  node = db.fetch_dict("SELECT %s, update_pending FROM confignode WHERE node = %%s" % fields, node) + print node  if not node:  self.print_error("Recieved status update from unknown node [%s]", node)  else: