Commit dec6fd9f authored by Pelayo Torres's avatar Pelayo Torres
Browse files

Added generate script

parent 7091ec4c
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ services:
    restart: unless-stopped
    volumes:
      - ${SERVICES_DIR}/helper/config.yaml:/usr/src/app/config.yaml
      - ${SERVICES_DIR}/helper/helper_service/certs:/usr/src/app/helper_service/certs
    extra_hosts:
      - host.docker.internal:host-gateway
      - fluent-bit:host-gateway
+28 −19
Original line number Diff line number Diff line
mongo: {
  'user': 'root',
  'password': 'example',
  'db': 'capif',
  'invoker_col': 'invokerdetails',
  'provider_col': 'providerenrolmentdetails',
  'col_services': "serviceapidescriptions",
  'col_security': "security",
  'col_event': "eventsdetails",
  'col_capif_configuration': "capif_configuration",
  'host': 'mongo',
  'port': "27017"
}
mongo:
  user: root
  password: example
  db: capif
  invoker_col: invokerdetails
  provider_col: providerenrolmentdetails
  col_services: serviceapidescriptions
  col_security: security
  col_event: eventsdetails
  col_capif_configuration: capif_configuration
  host: mongo
  port: 27017


ca_factory: 
  url: vault
  port: 8200
  token: dev-only-token
  verify: False

ca_factory: {
  "url": "vault",
  "port": "8200",
  "token": "dev-only-token",
  "verify": False
}

capif_configuration: 
  config_description: Default CAPIF Configuration
@@ -36,3 +36,12 @@ capif_configuration:
      oauth: 1
      pki: 2
      psk: 3
  
package_paths:
  helper_api:
    path: /api
    openapi_file: api/openapi/openapi.yaml
  configuration_api:
    path: /configuration
    openapi_file: configuration/openapi/openapi.yaml
+40 −3
Original line number Diff line number Diff line
@@ -4,12 +4,27 @@ import os
import requests
from config import Config
from controllers.helper_controller import helper_routes
from pathlib import Path
from db.db import MongoDatabse
import connexion
import sys
from flask import Flask
from OpenSSL.crypto import FILETYPE_PEM, TYPE_RSA, PKey, X509Req, dump_certificate_request, dump_privatekey
from asgiref.wsgi import WsgiToAsgi

app = Flask(__name__)
# --- Paths setup: make 'services' discoverable so "import api..." works ---
BASE_DIR = Path(__file__).resolve().parent
SERVICES_DIR = BASE_DIR / "services"

# Insert services directory at front of sys.path
if SERVICES_DIR.is_dir():
    services_path_str = str(SERVICES_DIR)
    if services_path_str not in sys.path:
        sys.path.insert(0, services_path_str)
else:
    raise RuntimeError(f"Services directory not found at {SERVICES_DIR!s}")

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

# Connect MongoDB and get TTL for superadmin certificate
@@ -77,7 +92,29 @@ cert_file = open("certs/ca_root.crt", 'wb')
cert_file.write(bytes(ca_root, 'utf-8'))
cert_file.close()

app.register_blueprint(helper_routes)
app.logger.setLevel(numeric_level)

package_paths = config.get("package_paths", {})

if not package_paths:
    logger.error("No package paths defined in configuration.")
    raise Exception("No package paths defined in configuration.")

# Add API endpoints
app.add_api(
        package_paths["configuration_api"]["openapi_file"],
        arguments={"title": "Helper Configuration API"},
        pythonic_params=True,
        base_path=package_paths["configuration_api"]["path"]
    )

app.add_api(
        package_paths["helper_api"]["openapi_file"],
        arguments={"title": "Helper API"},
        pythonic_params=True,
        base_path=package_paths["helper_api"]["path"]
    )


app.app.logger.setLevel(numeric_level)

asgi_app = WsgiToAsgi(app)
 No newline at end of file
+64 −0
Original line number Diff line number Diff line
#!/bin/bash
set -e

rm -rf services/configuration services/api

# Generate API 1
openapi-generator generate \
  -i openapi_helper_configuration.yaml \
  -g python-flask \
  -o services/configuration \
  --additional-properties=packageName=configuration

# Generate API 2
openapi-generator generate \
  -i openapi_helper_api.yaml \
  -g python-flask \
  -o services/api \
  --additional-properties=packageName=api

# ✅ Move generated inner folder to root service folder
mv services/configuration/configuration/* services/configuration/
rm -rf services/configuration/configuration

mv services/api/api/* services/api/
rm -rf services/api/api

# 🧹 Files to remove
FILES_TO_DELETE=(
  ".dockerignore"
  ".gitignore"
  ".openapi-generator-ignore"
  ".travis.yml"
  "Dockerfile"
  "git_push.sh"
  "README.md"
  "requirements.txt"
  "setup.py"
  "test-requirements.txt"
  "tox.ini"
)

# 🗑 Directories to remove
DIRS_TO_DELETE=(
  ".openapi-generator"
  ".github"
  "test"
  "docs"
)

for service in services/configuration services/api; do

  # Remove files
  for file in "${FILES_TO_DELETE[@]}"; do
    rm -f "$service/$file"
  done

  # Remove directories
  for dir in "${DIRS_TO_DELETE[@]}"; do
    rm -rf "$service/$dir"
  done

done

echo "✅ Services generated, reorganized and cleaned successfully."
+1390 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading