Commit 7d2ce3bb authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Not working

parent 3fcb5a90
Loading
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -38,9 +38,9 @@ capif_configuration:
      psk: 3
      psk: 3
  
  
package_paths:
package_paths:
  helper_api:
  # helper_api:
    path: /api
  #   path: /api
    openapi_file: api/openapi/openapi.yaml
  #   openapi_file: api/openapi/openapi.yaml
  configuration_api:
  configuration_api:
    path: /configuration
    path: /configuration
    openapi_file: configuration/openapi/openapi.yaml
    openapi_file: configuration/openapi/openapi.yaml
+36 −8
Original line number Original line Diff line number Diff line
@@ -4,14 +4,19 @@ import os
import sys
import sys
from pathlib import Path
from pathlib import Path


import connexion
from connexion import FlaskApp
import requests
import requests
from asgiref.wsgi import WsgiToAsgi
# from asgiref.wsgi import WsgiToAsgi
from config import Config
from config import Config
from db.db import get_mongo
from db.db import get_mongo
from flask import Flask
from flask import Flask
from OpenSSL.crypto import (FILETYPE_PEM, TYPE_RSA, PKey, X509Req,
from OpenSSL.crypto import (FILETYPE_PEM, TYPE_RSA, PKey, X509Req,
                            dump_certificate_request, dump_privatekey)
                            dump_certificate_request, dump_privatekey)
from connexion.middleware import ConnexionMiddleware
# import traceback
# from flask import request




# --- Paths setup: make 'services' discoverable so "import api..." works ---
# --- Paths setup: make 'services' discoverable so "import api..." works ---
BASE_DIR = Path(__file__).resolve().parent
BASE_DIR = Path(__file__).resolve().parent
@@ -25,7 +30,7 @@ if SERVICES_DIR.is_dir():
else:
else:
    raise RuntimeError(f"Services directory not found at {SERVICES_DIR!s}")
    raise RuntimeError(f"Services directory not found at {SERVICES_DIR!s}")


app = connexion.App(__name__, specification_dir=str(SERVICES_DIR))

config = Config().get_config()
config = Config().get_config()


# Connect MongoDB and get TTL for superadmin certificate
# Connect MongoDB and get TTL for superadmin certificate
@@ -88,7 +93,7 @@ except Exception:


# Request superadmin certificate
# Request superadmin certificate
url = 'http://{}:{}/v1/pki_int/sign/my-ca'.format(config["ca_factory"]["url"], config["ca_factory"]["port"])  
url = 'http://{}:{}/v1/pki_int/sign/my-ca'.format(config["ca_factory"]["url"], config["ca_factory"]["port"])  
headers = {'X-Vault-Token': f"{config["ca_factory"]["token"]}"}  
headers = {'X-Vault-Token': f"{config['ca_factory']['token']}"}
data = {
data = {
    'format':'pem_bundle',
    'format':'pem_bundle',
    'ttl': ttl_superadmin_cert,
    'ttl': ttl_superadmin_cert,
@@ -123,10 +128,29 @@ if not package_paths:
    logger.error("No package paths defined in configuration.")
    logger.error("No package paths defined in configuration.")
    raise Exception("No package paths defined in configuration.")
    raise Exception("No package paths defined in configuration.")


# app = connexion.App(__name__, template_folder=str(SERVICES_DIR))
app = FlaskApp(__name__, server_args={'template_folder': str(SERVICES_DIR)})

app.app.debug = True

# @app.app.before_request
# def debug_context():
#     try:
#         from connexion import request as conn_req
#         # Intentamos acceder al contexto problemático
#         _ = conn_req.path
#         logging.debug("Contexto de Connexion OK")
#     except RuntimeError:
#         logging.error("!!! Error de Contexto detectado en la ruta: %s", request.path)
#         traceback.print_stack() # Esto imprimirá EXACTAMENTE quién llamó a qué

# Forzar que la aplicación use el middleware de contexto


# Dynamically add all APIs defined in package_paths
# Dynamically add all APIs defined in package_paths
for name, pkg in package_paths.items():
for name, pkg in package_paths.items():
    openapi_file = pkg.get("openapi_file")
    openapi_file = "services/" + pkg.get("openapi_file")
    base_path = pkg.get("path")
    base_path = "/helper/" + pkg.get("path")


    if not openapi_file or not base_path:
    if not openapi_file or not base_path:
        logger.warning(f"Skipping package_path '{name}' because 'openapi_file' or 'path' is missing.")
        logger.warning(f"Skipping package_path '{name}' because 'openapi_file' or 'path' is missing.")
@@ -143,10 +167,14 @@ for name, pkg in package_paths.items():
        openapi_file,             # relative to specification_dir (SERVICES_DIR)
        openapi_file,             # relative to specification_dir (SERVICES_DIR)
        arguments={"title": title},
        arguments={"title": title},
        pythonic_params=True,
        pythonic_params=True,
        base_path="/helper/" + base_path
        base_path= base_path
    )
    )


app.add_middleware(ConnexionMiddleware)



app.app.logger.setLevel(numeric_level)
app.app.logger.setLevel(numeric_level)


asgi_app = WsgiToAsgi(app)
flask_app = app
 No newline at end of file
main_app = app.middleware
# asgi_app = WsgiToAsgi(app)
+1 −1
Original line number Original line Diff line number Diff line
@@ -2,7 +2,7 @@ from functools import wraps
from cryptography import x509
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.backends import default_backend
from flask import request
from flask import request
import connexion
# import connexion
#from ..core.validate_user import ControlAccess
#from ..core.validate_user import ControlAccess


from visibility_control.core.validate_user import ControlAccess
from visibility_control.core.validate_user import ControlAccess
+2 −2
Original line number Original line Diff line number Diff line
from app import asgi_app
from helper_service.app import app


if __name__ == "__main__":
if __name__ == "__main__":
    asgi_app.run()
    app.run()
+1 −1
Original line number Original line Diff line number Diff line
@@ -2,4 +2,4 @@




gunicorn -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8080 \
gunicorn -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8080 \
         --chdir /usr/src/app/helper_service wsgi:asgi_app
         --chdir /usr/src/app/helper_service app:main_app
 No newline at end of file
 No newline at end of file
Loading