blob: e798059c7254ddb611490ec7ffc24688283848aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
# This software is distributed under the terms and conditions of the 'Apache-2.0'
# license which can be found in the file 'LICENSE' in this package distribution
# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
"""
Authz is the endpoint to get authorization response
"""
from flask import request
from flask_restful import Resource
import requests
import logging
__version__ = "4.3.1"
logger = logging.getLogger("moon.interface.api." + __name__)
class Update(Resource):
"""
Endpoint for update requests
"""
__urls__ = (
"/update",
)
def __init__(self, **kwargs):
self.CACHE = kwargs.get("cache")
self.INTERFACE_NAME = kwargs.get("interface_name", "interface")
self.MANAGER_URL = kwargs.get("manager_url", "http://manager:8080")
self.TIMEOUT = 5
def put(self):
try:
self.CACHE.update_assignments(
request.form.get("policy_id", None),
request.form.get("perimeter_id", None),
)
for project_id in self.CACHE.container_chaining:
hostname = self.CACHE.container_chaining[project_id][0]["hostip"]
port = self.CACHE.container_chaining[project_id][0]["port"]
req = requests.put("http://{}:{}/update".format(hostname, port), request.form)
if req.status_code != 200:
logger.error("Cannot connect to {} on port {}".format(hostname, port))
except Exception as e:
logger.exception(e)
return {"result": False, "reason": str(e)}
return {"result": True}
|