# ============LICENSE_START===============================================
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# Copyright (C) 2021 Nordix Foundation. All rights reserved.
# ========================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
import sys
from pathlib import Path
from flask import Response
+import socket
+import ssl
+# Must exist
apipath=os.environ['APIPATH']
+# May exist
+remote_hosts_logging=os.getenv('REMOTE_HOSTS_LOGGING')
+duplicate_check=os.getenv('DUPLICATE_CHECK')
# Make sure the api path for the interface yaml file is set, otherwise exit
def check_apipath():
arr = os.listdir("../")
del arr[arr.index('common')] # Remove the common lib
del arr[arr.index('start.sh')] # Remove the start script
+ arr.sort()
return Response("Current interface: " + str(pp[len(pp)-1]) + " All supported A1 interface yamls in this container: "+str(arr), 200, mimetype='text/plain')
+# Remote host lookup and store host name in a set
+def extract_host_name(hosts_set, request):
+ if (remote_hosts_logging is not None):
+ if request.environ.get('HTTP_X_FORWARDED_FOR') is None:
+ host_ip=str(request.environ['REMOTE_ADDR'])
+ else:
+ host_ip=str(request.environ['HTTP_X_FORWARDED_FOR'])
+ prefix='::ffff:'
+ if (host_ip.startswith('::ffff:')):
+ host_ip=host_ip[len(prefix):]
+ try:
+ name, alias, addresslist = socket.gethostbyaddr(host_ip)
+ hosts_set.add(name)
+ except Exception:
+ hosts_set.add(host_ip)
+ else:
+ hosts_set.add("logging_of_remote_host_names_not_enabled")
+
+# Function to check if duplicate check shall be made
+# True = check for duplicates
+# False = ignore duplicates
+def is_duplicate_check():
+ global duplicate_check
+
+ if ((duplicate_check is not None) and (duplicate_check == "1")):
+ return True
+ return False