#!/usr/bin/python import random from invirt import database import sys # stolen directly from xend/server/netif.py def randomMAC(): """Generate a random MAC address. Uses OUI (Organizationally Unique Identifier) 00-16-3E, allocated to Xensource, Inc. The OUI list is available at http://standards.ieee.org/regauth/oui/oui.txt. The remaining 3 fields are random, with the first bit of the first random field set 0. @return: MAC address string """ mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac)) # ... and stolen from xend/uuid.py def randomUUID(): """Generate a random UUID.""" return [ random.randint(0, 255) for _ in range(0, 16) ] def uuidToString(u): return "-".join(["%02x" * 4, "%02x" * 2, "%02x" * 2, "%02x" * 2, "%02x" * 6]) % tuple(u) def usage(): print >> sys.stderr, "USAGE: " + sys.argv[0] + " " def addip(ip): n = database.NIC(machine=None, mac_addr=randomMAC(), ip=ip, hostname=None) database.session.save(n) database.session.flush() if __name__ == '__main__': if len(sys.argv) == 2: ip = sys.argv[1] else: usage() sys.exit(1) database.connect() addip(ip)