# need to import total module to set its global variable dcs
import compute
-from compute import dcs, ComputeList, ComputeStart, ComputeStatus, ComputeStop, DatacenterList, DatacenterStatus
+from compute import dcs, ComputeList, Compute, DatacenterList, DatacenterStatus
# need to import total module to set its global variable net
import network
logging.basicConfig(level=logging.INFO)
-
class RestApiEndpoint(object):
-
"""
Simple API endpoint that offers a REST
interface. This interface will be used by the
self.api = Api(self.app)
# setup endpoints
+ self.api.add_resource(Compute, "/restapi/compute/<dc_label>/<compute_name>")
self.api.add_resource(ComputeList, "/restapi/compute/<dc_label>")
- self.api.add_resource(ComputeStart, "/restapi/compute/<dc_label>/<compute_name>/start")
- self.api.add_resource(ComputeStop, "/restapi/compute/<dc_label>/<compute_name>/stop")
- self.api.add_resource(ComputeStatus, "/restapi/compute/<dc_label>/<compute_name>")
- self.api.add_resource(DatacenterList, "/restapi/datacenter")
+
self.api.add_resource(DatacenterStatus, "/restapi/datacenter/<dc_label>")
+ self.api.add_resource(DatacenterList, "/restapi/datacenter")
- self.api.add_resource(NetworkAction, "/restapi/network/<vnf_src_name>/<vnf_dst_name>")
+ self.api.add_resource(NetworkAction, "/restapi/network/<vnf_src_name>/<vnf_dst_name>", )
- self.api.add_resource(MonitorInterfaceAction, "/restapi/monitor/<vnf_name>/<vnf_interface>/<metric>")
- self.api.add_resource(MonitorFlowAction, "/restapi/monitor/<vnf_name>/<vnf_interface>/<metric>/<cookie>")
+ self.api.add_resource(MonitorInterfaceAction,
+ "/restapi/monitor/<vnf_name>/<metric>",
+ "/restapi/monitor/<vnf_name>/<vnf_interface>/<metric>")
+ self.api.add_resource(MonitorFlowAction,
+ "/restapi/flowmon/<vnf_name>/<metric>/<cookie>",
+ "/restapi/flowmon/<vnf_name>/<vnf_interface>/<metric>/<cookie>")
logging.debug("Created API endpoint %s(%s:%d)" % (self.__class__.__name__, self.ip, self.port))
-
def connectDatacenter(self, dc):
compute.dcs[dc.label] = dc
- logging.info("Connected DC(%s) to API endpoint %s(%s:%d)" % (dc.label, self.__class__.__name__, self.ip, self.port))
+ logging.info(
+ "Connected DC(%s) to API endpoint %s(%s:%d)" % (dc.label, self.__class__.__name__, self.ip, self.port))
def connectDCNetwork(self, DCnetwork):
-
network.net = DCnetwork
monitor.net = DCnetwork
self.__class__.__name__, self.ip, self.port))
def start(self):
- thread = threading.Thread(target= self._start_flask, args=())
+ thread = threading.Thread(target=self._start_flask, args=())
thread.daemon = True
thread.start()
logging.info("Started API endpoint @ http://%s:%d" % (self.ip, self.port))
-
def _start_flask(self):
- self.app.run(self.ip, self.port, debug=True, use_reloader=False)
\ No newline at end of file
+ self.app.run(self.ip, self.port, debug=True, use_reloader=False)