import json
import uuid
from flask import Flask
app = Flask(__name__)

tenant_networks = []
tenant_ports = []

@app.route("/ws.v1/login", methods=["POST",])
def login():
	response.content_type = "application/json"
	return ""

@app.route("/ssp.v1/tenant-networks", methods=["POST",])
def create_tenant_network():
	response.content_type = "application/json"
	response.status = 201
	obj = request.json
	obj["uuid"] = str(uuid.uuid1())
	tenant_networks.append(obj)
	return json.dumps(obj)

@app.route("/ssp.v1/tenant-networks/<tenant_net_uuid>", methods=["DELETE",])
def delete_tenant_network(tenant_net_uuid):
	for net in tenant_networks:
		if net["uuid"] == tenant_net_uuid:
			tenant_networks.remove(net)
			response.status = 204
			return ""
	response.status = 404
	return ""

@app.route("/ssp.v1/tenant-ports", methods=["POST",])
def create_tenant_port():
	response.content_type = "application/json"
	response.status = 201
	obj = request.json
	obj["uuid"] = str(uuid.uuid1())
	tenant_ports.append(obj)
	return json.dumps(obj)

@app.route("/ssp.v1/tenant-ports/<tenant_port_uuid>", methods=["DELETE",])
def delete_tenant_port(tenant_port_uuid):
	for port in tenant_ports:
		if port["uuid"] == tenant_port_uuid:
			tenant_ports.remove(port)
			response.status = 204
			return ""
	response.status = 404
	return ""

@app.route("/ssp.v1/tenant-ports/<tenant_port_uuid>", methods=["PUT",])
def update_tenant_port(tenant_port_uuid):
	response.content_type = "application/json"
	for port in tenant_ports:
		if port["uuid"] == tenant_port_uuid:
			obj = request.json
			obj["uuid"] = tenant_port_uuid
			obj["vlan_id"] = 100
			tenant_ports.remove(port)
			tenant_ports.append(obj)
			response.status = 200
			return json.dumps(obj)
	response.status = 404
	return ""

if __name__=="__main__":
    app.run(host="0.0.0.0", port=9080, debug=True)

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

import json
import uuid
from flask import Flask
app = Flask(__name__)

tenant_networks = []
tenant_ports = []

@app.route("/ws.v1/login", methods=["POST",])
def login():
	response.content_type = "application/json"
	return ""

@app.route("/ssp.v1/tenant-networks", methods=["POST",])
def create_tenant_network():
	response.content_type = "application/json"
	response.status = 201
	obj = request.json
	obj["uuid"] = str(uuid.uuid1())
	tenant_networks.append(obj)
	return json.dumps(obj)

@app.route("/ssp.v1/tenant-networks/<tenant_net_uuid>", methods=["DELETE",])
def delete_tenant_network(tenant_net_uuid):
	for net in tenant_networks:
		if net["uuid"] == tenant_net_uuid:
			tenant_networks.remove(net)
			response.status = 204
			return ""
	response.status = 404
	return ""

@app.route("/ssp.v1/tenant-ports", methods=["POST",])
def create_tenant_port():
	response.content_type = "application/json"
	response.status = 201
	obj = request.json
	obj["uuid"] = str(uuid.uuid1())
	tenant_ports.append(obj)
	return json.dumps(obj)

@app.route("/ssp.v1/tenant-ports/<tenant_port_uuid>", methods=["DELETE",])
def delete_tenant_port(tenant_port_uuid):
	for port in tenant_ports:
		if port["uuid"] == tenant_port_uuid:
			tenant_ports.remove(port)
			response.status = 204
			return ""
	response.status = 404
	return ""

@app.route("/ssp.v1/tenant-ports/<tenant_port_uuid>", methods=["PUT",])
def update_tenant_port(tenant_port_uuid):
	response.content_type = "application/json"
	for port in tenant_ports:
		if port["uuid"] == tenant_port_uuid:
			obj = request.json
			obj["uuid"] = tenant_port_uuid
			obj["vlan_id"] = 100
			tenant_ports.remove(port)
			tenant_ports.append(obj)
			response.status = 200
			return json.dumps(obj)
	response.status = 404
	return ""

if __name__=="__main__":
    app.run(host="0.0.0.0", port=9080, debug=True)

Add missing ASL decl.