xentaur
diff xendomain.py @ 58:58381d1fe31b
domains_brief support
author | igor |
---|---|
date | Sun Nov 11 19:22:52 2007 +0200 (2007-11-11) |
parents | 308b524d9a70 |
children | 9d54d94a7dff |
line diff
1.1 --- a/xendomain.py Sat Nov 10 19:58:39 2007 +0200 1.2 +++ b/xendomain.py Sun Nov 11 19:22:52 2007 +0200 1.3 @@ -12,33 +12,61 @@ 1.4 network=sys.modules['__main__'].network 1.5 domain=sys.modules['__main__'].domain 1.6 1.7 -import os 1.8 +import os,re 1.9 sys.path.append(os.environ['HOME']+"/xentaur") 1.10 os.environ['xendomain']=domain 1.11 1.12 + 1.13 + 1.14 1.15 ############################ 1.16 # default values: 1.17 -platform='7200' 1.18 +platform='' 1.19 npe_type='npe-400' 1.20 bridge_bridge_table = { 1.21 } 1.22 1.23 +domains_brief=[] 1.24 +domains=[] 1.25 +domain_types=[] 1.26 +domain_notes=[] 1.27 +domain_subtypes=[] 1.28 + 1.29 hidden_bridges = [] 1.30 broken_links = [] 1.31 temporary_links = [] 1.32 1.33 real_bridges=[] 1.34 real_nodes=[] 1.35 +# overriden by network config 1.36 ############################ 1.37 1.38 -# overriden by network config 1.39 +def process_domains_brief(): 1.40 + global domains, domain_types, real_nodes, domain_notes 1.41 + node_brief_re=re.compile('([a-zA-Z_0-9-]*)(?::([a-zA-Z_0-9-]*))?(?::([a-zA-Z_0-9-]*))?(\*?)(?:#(.*))?') 1.42 + if len(domains)==0: 1.43 + domains=map(lambda x:node_brief_re.search(x).groups()[0] or '', domains_brief) 1.44 + if len(domain_types)==0: 1.45 + domain_types=map(lambda x:node_brief_re.search(x).groups()[1] or '', domains_brief) 1.46 + if len(domain_subtypes)==0: 1.47 + domain_subtypes=map(lambda x:node_brief_re.search(x).groups()[2] or '', domains_brief) 1.48 + if len(real_nodes)==0: 1.49 + i=0 1.50 + for brief in domains_brief: 1.51 + if node_brief_re.search(brief).groups()[3] == '*': 1.52 + real_nodes.append(domains[i]) 1.53 + i+=1 1.54 + if len(domain_notes)==0: 1.55 + domain_notes=map(lambda x:node_brief_re.search(x).groups()[4] or '', domains_brief) 1.56 + 1.57 +############################ 1.58 #try: 1.59 exec 'from %s import *' % (network) 1.60 #except: 1.61 # print "Can't find or interpret module %s with topology description" %(network) 1.62 # sys.exit(1) 1.63 1.64 +process_domains_brief() 1.65 1.66 N = str(domains.index(domain)) 1.67 name=domain 1.68 @@ -73,6 +101,11 @@ 1.69 disk = [ 'file:'+xenomips_dir+'xenomips1.img,hda1,r', 'file:'+xenomips_dir+'xenomips-ios1.img,hda2,r', 'file:'+xenomips_dir+'xenomips-config'+N+'.img,hda3,w' ] 1.70 root = "/dev/hda1 ro" 1.71 1.72 +if domain_subtypes[N] != '' and platform == '': 1.73 + platform=domain_subtypes[N] 1.74 + 1.75 +if platform = '': 1.76 + platform='7200' 1.77 platform_option="" 1.78 if platform != '7200': 1.79 platform_option=' -P '+platform