4 # the pool of IP addresses available
6 available = [ ( 'vnode%02d.inria.fr'%i, '138.96.250.13%d'%i) for i in range(1,10) ]
9 def locate (user_provided):
11 for (hostname,ip) in available:
12 if hostname.find(user_provided) >=0 or ip.find(user_provided) >=0:
15 def config (plcs,options):
18 if len(options.ips) != 0:
22 if len(options.ips) != 0:
23 utils.header('ips=%r'%options.ips)
24 user_provided = options.ips.pop()
25 utils.header('vserver IP assignment : using user-provided %s'%user_provided)
26 (hostname,ip) = locate(user_provided)
28 ### locating the next available hostname (using ping)
31 (hostname,ip)=available.pop()
32 utils.header('vserver IP assignment : scanning IP %s'%ip)
33 if not utils.check_ping(hostname):
34 utils.header('IP %s is OK'%ip)
37 raise Exception('Cannot find an available IP for %s - exiting'%plc['name'])
38 # compute a helpful vserver name
40 simplehostname=hostname.split('.')[0]
41 vservername = os.path.basename(options.myplc_url)
42 vservername = vservername.replace(".rpm","")
43 vservername = vservername.replace("myplc","vtest")
45 vservername = "%s-%s" % (vservername,simplehostname)
47 vservername = "%s-%d-%s" % (vservername,plc_counter,simplehostname)
48 plc['vservername']=vservername
50 plc['name'] = "%s_%s"%(plc['name'],simplehostname)
51 utils.header("Attaching plc %s to vserver %s (%s)"%\
52 (plc['name'],plc['vservername'],plc['vserverip']))
53 for key in [ 'PLC_DB_HOST',