git://git.onelab.eu
/
nodemanager-topo.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
efc0485
)
Add 'manual' topology mode for manually specifying rspecs
author
Andy Bavier
<acb@cs.princeton.edu>
Thu, 25 Jun 2009 21:01:20 +0000
(21:01 +0000)
committer
Andy Bavier
<acb@cs.princeton.edu>
Thu, 25 Jun 2009 21:01:20 +0000
(21:01 +0000)
create-topo-attributes.py
patch
|
blob
|
history
diff --git
a/create-topo-attributes.py
b/create-topo-attributes.py
index
925b721
..
f0c95e2
100755
(executable)
--- a/
create-topo-attributes.py
+++ b/
create-topo-attributes.py
@@
-116,6
+116,8
@@
class Slice:
record = {'slice_tag_id':None, 'slice_id':self.id, 'tagname':tagname, 'value':value}
if node:
record['node_id'] = node.id
record = {'slice_tag_id':None, 'slice_id':self.id, 'tagname':tagname, 'value':value}
if node:
record['node_id'] = node.id
+ else:
+ record['node_id'] = None
tag = Slicetag(record)
slicetags[id] = tag
self.slice_tag_ids.append(id)
tag = Slicetag(record)
slicetags[id] = tag
self.slice_tag_ids.append(id)
@@
-331,7
+333,14
@@
for i in slices:
else:
topo_type = None
else:
topo_type = None
- if topo_type == 'vsys' or topo_type == 'iias':
+ """
+ Valid values of topo_type:
+ 'vsys': Use vsys topology scripts to set up virtual links
+ 'iias': Automatically create a virtual topology mirroring the physical one
+ 'manual': Don't modify the topo_rspec tags if present
+ None: No virtual topology
+ """
+ if topo_type in ['vsys', 'iias', 'manual']:
slice.assign_egre_key(slicetags)
slice.turn_on_netns(slicetags)
slice.add_cap_net_admin(slicetags)
slice.assign_egre_key(slicetags)
slice.turn_on_netns(slicetags)
slice.add_cap_net_admin(slicetags)
@@
-368,6
+377,11
@@
for i in slices:
if dryrun:
print "Slice %s not using IIAS" % slice.name
if dryrun:
print "Slice %s not using IIAS" % slice.name
+ if topo_type == 'manual' and slice.get_tag('egre_key', slicetags):
+ topo_tag = slice.get_tag('topo_rspec', slicetags)
+ if topo_tag:
+ topo_tag.updated = True
+
# Update the tag values in the database
for i in slicetags:
tag = slicetags[i]
# Update the tag values in the database
for i in slicetags:
tag = slicetags[i]