+ def assign_egre_key(self, slicetags):
+ if not self.get_tag('egre_key', slicetags):
+ try:
+ key = free_egre_key(slicetags)
+ self.update_tag('egre_key', key, slicetags)
+ except:
+ # Should handle this case...
+ pass
+ return
+
+ def turn_on_netns(self, slicetags):
+ tag = self.get_tag('netns', slicetags)
+ if (not tag) or (tag.value != '1'):
+ self.update_tag('netns', '1', slicetags)
+ return
+
+ def turn_off_netns(self, slicetags):
+ tag = self.get_tag('netns', slicetags)
+ if tag and (tag.value != '0'):
+ tag.delete()
+ return
+
+ def add_cap_net_admin(self, slicetags):
+ tag = self.get_tag('capabilities', slicetags)
+ if tag:
+ caps = tag.value.split(',')
+ for cap in caps:
+ if cap == "CAP_NET_ADMIN":
+ return
+ else:
+ newcaps = "CAP_NET_ADMIN," + caps
+ self.update_tag('capabilities', newcaps, slicetags)
+ else:
+ self.add_tag('capabilities', 'CAP_NET_ADMIN', slicetags)
+ return
+
+ def remove_cap_net_admin(self, slicetags):
+ tag = self.get_tag('capabilities', slicetags)
+ if tag:
+ caps = tag.value.split(',')
+ newcaps = []
+ for cap in caps:
+ if cap != "CAP_NET_ADMIN":
+ newcaps.append(cap)
+ if newcaps:
+ value = ','.join(newcaps)
+ self.update_tag('capabilities', value, slicetags)