+ @require_enabled
+ def save_subnet(self, subnet):
+ if not subnet.subnet_id:
+ quantum_subnet = self.driver.create_subnet(name= subnet.slice.name,
+ network_id=subnet.slice.network_id,
+ cidr_ip = subnet.cidr,
+ ip_version=subnet.ip_version,
+ start = subnet.start,
+ end = subnet.end)
+ subnet.subnet_id = quantum_subnet['id']
+ # add subnet as interface to slice's router
+ self.driver.add_router_interface(subnet.slice.router_id, subnet.subnet_id)
+ #add_route = 'route add -net %s dev br-ex gw 10.100.0.5' % self.cidr
+ #commands.getstatusoutput(add_route)
+
+
+ @require_enabled
+ def delete_subnet(self, subnet):
+ if subnet.subnet_id:
+ self.driver.delete_router_interface(subnet.slice.router_id, subnet.subnet_id)
+ self.driver.delete_subnet(subnet.subnet_id)
+ #del_route = 'route del -net %s' % self.cidr
+ #commands.getstatusoutput(del_route)
+
+ @require_enabled
+ def save_sliver(self, sliver):
+ if not sliver.instance_id:
+ instance = self.driver.spawn_instance(name=sliver.name,
+ key_name = sliver.key.name,
+ image_id = sliver.image.image_id,
+ hostname = sliver.node.name )
+ sliver.instance_id = instance.id
+ sliver.instance_name = getattr(instance, 'OS-EXT-SRV-ATTR:instance_name')
+
+ @require_enabled
+ def delete_sliver(self, sliver):
+ if sliver.instance_id:
+ self.driver.destroy_instance(sliver.instance_id)
+
+