X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Fnetwork.py;h=e766e625c012b73aa4ebe2821f284915da376e7b;hb=7953f2fa5e8041cb8abdcb376bfa0bc8b988f229;hp=88ea470eedc0553bb1bd42bc68e7446da657210b;hpb=4fac2afba3182039dae6216d267d13eb3b98a56f;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/rest/network.py b/src/emuvim/api/rest/network.py index 88ea470..e766e62 100755 --- a/src/emuvim/api/rest/network.py +++ b/src/emuvim/api/rest/network.py @@ -39,6 +39,8 @@ import json logging.basicConfig(level=logging.INFO) +CORS_HEADER = {'Access-Control-Allow-Origin': '*'} + # the global net is set from the topology file, and connected via connectDCNetwork function in rest_api_endpoint.py net = None @@ -63,27 +65,33 @@ class NetworkAction(Resource): global net - def put(self, vnf_src_name, vnf_dst_name): + def put(self): logging.debug("REST CALL: network chain add") command = 'add-flow' - return self._NetworkAction(vnf_src_name, vnf_dst_name, command=command) + return self._NetworkAction(command=command) - def delete(self, vnf_src_name, vnf_dst_name): + def delete(self): logging.debug("REST CALL: network chain remove") command = 'del-flows' - return self._NetworkAction(vnf_src_name, vnf_dst_name, command=command) + return self._NetworkAction(command=command) - def _NetworkAction(self, vnf_src_name, vnf_dst_name, command=None): + def _NetworkAction(self, command=None): # call DCNetwork method, not really datacenter specific API for now... # no check if vnfs are really connected to this datacenter... try: # check if json data is a dict - data = request.json + data = request.args + # try json payload + if data is None: + data = request.json + # then no data if data is None: data = {} elif type(data) is not dict: data = json.loads(request.json) + vnf_src_name = data.get("vnf_src_name") + vnf_dst_name = data.get("vnf_dst_name") vnf_src_interface = data.get("vnf_src_interface") vnf_dst_interface = data.get("vnf_dst_interface") weight = data.get("weight") @@ -109,7 +117,7 @@ class NetworkAction(Resource): monitor=monitor, monitor_placement=monitor_placement) # return setChain response - return str(c), 200 + return str(c), 200, CORS_HEADER except Exception as ex: logging.exception("API error.") - return ex.message, 500 \ No newline at end of file + return ex.message, 500, CORS_HEADER