def next_free (self):
for i in self.pool:
- if i.status in ['busy','mine','starting' ]: continue
- i.status='mine'
- return (i.hostname,i.userdata)
+ if i.status == 'free':
+ i.status='mine'
+ return (i.hostname,i.userdata)
raise Exception,"No IP address available in pool %s"%self.message
-# OS-dependent ping option (support for macos, for convenience)
+ # OS-dependent ping option (support for macos, for convenience)
ping_timeout_option = None
-# checks whether a given hostname/ip responds to ping
+ # checks whether a given hostname/ip responds to ping
def check_ping (self,hostname):
if not Pool.ping_timeout_option:
(status,osname) = commands.getstatusoutput("uname -s")
except: items=[]
for item in items:
for i in self.pool:
- if i.hostname==item: i.status='starting'
+ if i.hostname==item and i.status==None: i.status='starting'
- def release_my_fakes (self):
+ def release_my_starting (self):
for i in self.pool:
if i.status=='mine':
self.del_starting(i.hostname)
if options.ips_vplc:
vplc_hostname=options.ips_vplc.pop()
else:
- self.vplc_pool.load_starting()
self.vplc_pool.sense()
+ self.vplc_pool.load_starting()
(vplc_hostname,unused)=self.vplc_pool.next_free()
vplc_ip = self.vplc_pool.get_ip(vplc_hostname)
self.vplc_pool.add_starting(vplc_hostname)
#### apply in the plc_spec
# # informative
# label=options.personality.replace("linux","")
- mapper = {'plc': [ ('*' , {'hostname':plc_box.hostname,
+ mapper = {'plc': [ ('*' , {'host_box':plc_box.hostname,
# 'name':'%s-'+label,
'name': plc_name,
'vservername':vservername,
vnode_hostname=options.ips_vnode.pop()
mac=self.vnode_pool.retrieve_userdata(vnode_hostname)
else:
- self.vnode_pool.load_starting()
self.vnode_pool.sense()
+ self.vnode_pool.load_starting()
(vnode_hostname,mac)=self.vnode_pool.next_free()
ip=self.vnode_pool.get_ip (vnode_hostname)
self.vnode_pool.add_starting(vnode_hostname)
#################### release:
def release (self,options):
- self.vplc_pool.release_my_fakes()
- self.vnode_pool.release_my_fakes()
+ self.vplc_pool.release_my_starting()
+ self.vnode_pool.release_my_starting()
pass
#################### show results for interactive mode