Commit e8d00c9e authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Initial modification

parent 51078a90
Loading
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
import connexion
from ..models.service_api_description import ServiceAPIDescription  # noqa: E501
from ..core.serviceapidescriptions import PublishServiceOperations
from ..models.service_api_description import ServiceAPIDescription  # noqa: E501

from published_apis.models.problem_details import ProblemDetails  # noqa: E501
from published_apis.models.service_api_description import ServiceAPIDescription  # noqa: E501
from published_apis import util

from flask import Response, request, current_app
from flask import request, current_app

from cryptography import x509
from cryptography.hazmat.backends import default_backend
from ..core.validate_user import ControlAccess
from functools import wraps
import asyncio


service_operations = PublishServiceOperations()

valid_user = ControlAccess()


def cert_validation():
    def _cert_validation(f):
        @wraps(f)
@@ -42,11 +36,17 @@ def cert_validation():
                if result is not None:
                    return result
                
                result = service_operations.check_apf(args["apfId"])

                if result is not None:
                    return result

            result = f(**kwargs)
            return result
        return __cert_validation
    return _cert_validation

# @cert_validation()
def apf_id_service_apis_get(apf_id):  # noqa: E501
    """apf_id_service_apis_get

@@ -62,7 +62,7 @@ def apf_id_service_apis_get(apf_id): # noqa: E501

    return res


# @cert_validation()
def apf_id_service_apis_post(apf_id, body):  # noqa: E501
    """apf_id_service_apis_post

+3 −2
Original line number Diff line number Diff line
from abc import ABC, abstractmethod
from abc import ABC
from db.db import MongoDatabse


class Resource(ABC):

    def __init__(self):
+16 −16
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ service_api_not_found_message = "Service API not found"

class PublishServiceOperations(Resource):

    def __check_apf(self, apf_id):
    def check_apf(self, apf_id):
        providers_col = self.db.get_col_by_name(self.db.capif_provider_col)

        current_app.logger.debug("Checking apf id")
@@ -49,10 +49,10 @@ class PublishServiceOperations(Resource):

            current_app.logger.debug("Geting service apis")

            result = self.__check_apf(apf_id)
            # result = self.__check_apf(apf_id)

            if result != None:
                return result
            # if result != None:
            #     return result

            service = mycol.find({"apf_id": apf_id}, {"_id": 0, "api_name": 1, "api_id": 1, "aef_profiles": 1, "description": 1,
                                 "supported_features": 1, "shareable_info": 1, "service_api_category": 1, "api_supp_feats": 1, "pub_api_path": 1, "ccf_id": 1})
@@ -85,10 +85,10 @@ class PublishServiceOperations(Resource):
        try:

            current_app.logger.debug("Publishing service")
            result = self.__check_apf(apf_id)
            # result = self.__check_apf(apf_id)

            if result != None:
                return result
            # if result != None:
            #     return result

            service = mycol.find_one(
                {"api_name": serviceapidescription.api_name})
@@ -144,10 +144,10 @@ class PublishServiceOperations(Resource):
        try:
            current_app.logger.debug(
                "Geting service api with id: " + service_api_id)
            result = self.__check_apf(apf_id)
            # result = self.__check_apf(apf_id)

            if result != None:
                return result
            # if result != None:
            #     return result

            my_query = {'apf_id': apf_id, 'api_id': service_api_id}
            service_api = mycol.find_one(my_query, {"_id": 0, "api_name": 1, "api_id": 1, "aef_profiles": 1, "description": 1,
@@ -176,10 +176,10 @@ class PublishServiceOperations(Resource):

            current_app.logger.debug(
                "Removing api service with id: " + service_api_id)
            result = self.__check_apf(apf_id)
            # result = self.__check_apf(apf_id)

            if result != None:
                return result
            # if result != None:
            #     return result

            my_query = {'apf_id': apf_id, 'api_id': service_api_id}
            serviceapidescription = mycol.find_one(my_query)
@@ -217,10 +217,10 @@ class PublishServiceOperations(Resource):
            current_app.logger.debug(
                "Updating service api with id: " + service_api_id)

            result = self.__check_apf(apf_id)
            # result = self.__check_apf(apf_id)

            if result != None:
                return result
            # if result != None:
            #     return result

            my_query = {'apf_id': apf_id, 'api_id': service_api_id}
            serviceapidescription = mycol.find_one(my_query)
+7 −1
Original line number Diff line number Diff line
@@ -13,6 +13,13 @@ if monitoring_value == "true":

class MongoDatabse():

    # _instance = None

    # def __new__(cls):
    #     if cls._instance is None:
    #         cls._instance = super(MongoDatabse, cls).__new__(cls)
    #     return cls._instance

    def __init__(self):
        self.config = Config().get_config()
        self.db = self.__connect()
@@ -20,7 +27,6 @@ class MongoDatabse():
        self.capif_provider_col = self.config['mongo']['capif_provider_col']
        self.certs_col = self.config['mongo']['certs_col']


    def get_col_by_name(self, name):
        return self.db[name].with_options(codec_options=CodecOptions(tz_aware=True))

+1 −2
Original line number Diff line number Diff line
@@ -18,8 +18,7 @@ CAPIF_HTTPS_PORT=443
# VAULT access configuration
CAPIF_VAULT=vault
CAPIF_VAULT_PORT=8200
CAPIF_VAULT_TOKEN=read-ca-token

CAPIF_VAULT_TOKEN=dev-only-token

MOCK_SERVER_URL=http://mock-server:9100
NOTIFICATION_DESTINATION_URL=http://mock-server:9100
Loading