Commit 7cc38fa4 authored by JorgeEcheva26's avatar JorgeEcheva26
Browse files

api_description_path relative path and netapp provider sample

parent 5421e9cd
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -35,8 +35,11 @@
    },
    "publish_req": {
        "service_api_id": "",
        "publisher_apf_id":"",
        "publisher_aefs_ids":["",""]
        "publisher_apf_id": "APFa839e8f520b35e6128b865076f2326",
        "publisher_aefs_ids": [
            "AEFa38221323a1ac541136b3cc6594da7",
            "AEFdad3120ec180ab4ae0fb3d82b90b56"
        ]
    },
    "api_description_path":"/Users/IDB0128/git_repos/pesp_capif_sdk/netapp-samples/netapp-provider-sample/netapp-provider-api-spec.json"
    "api_description_path": "./netapp-provider-api-spec.json"
}
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
    "apiName": "Api-de-prueba-2",
    "aefProfiles": [
        {
            "aefId": "AEF0f66526ff2fd8a1be721ace3506adb",
            "aefId": "AEFa38221323a1ac541136b3cc6594da7",
            "versions": [
                {
                    "apiVersion": "v1",
@@ -61,7 +61,7 @@
            ]
        },
        {
            "aefId": "AEF212b55c43b1b16116192043bab9e05",
            "aefId": "AEFdad3120ec180ab4ae0fb3d82b90b56",
            "versions": [
                {
                    "apiVersion": "v1",
+54 −10
Original line number Diff line number Diff line
import sys
import os

import json 

# Añadir el directorio del SDK al PYTHONPATH usando una ruta relativa
script_dir = os.path.dirname(os.path.abspath(__file__))  # Directorio actual del script
sdk_path = os.path.join(script_dir, '..', '..', 'sdk')  # Subir dos niveles y apuntar a 'sdk'
sys.path.insert(0, sdk_path)

capif_sdk_config_path = "/Users/dgs/Downloads/capif_sdk/invoker/config.json"
capif_sdk_config_path = "/Users/IDB0128/git_repos/pesp_capif_sdk/netapp-samples/netapp-invoker-sample/capif-sdk-config-sample.json"
from sdk import CAPIFProviderConnector  

if __name__ == "__main__":

    capif_connector = CAPIFProviderConnector(config_file=capif_sdk_config_path)
# capif_sdk_config_path = "/Users/dgs/Downloads/capif_sdk/invoker/config.json" 

capif_sdk_config_path = "./capif-sdk-config-sample.json" 

if __name__ == "__main__":
    try:
        # Inicialización del conector
        capif_connector = CAPIFProviderConnector(config_file=capif_sdk_config_path)
        capif_connector.onboard_provider()
        print("PROVIDER ONBOARDING COMPLETED")

        # Obtención de los AEFs ids y APFs ids para publicar una API
        with open(capif_sdk_config_path, 'r') as file:
            config = json.load(file)

        provider_folder = config.get('provider_folder')
        username_folder = config.get('capif_username')
        if not provider_folder:
            raise ValueError("El valor 'provider_folder' no está definido en el archivo de configuración.")

        
        detailspath = os.path.join(provider_folder,username_folder, "capif_provider_details.json")
        
        # Comprobación de la existencia del archivo de detalles
        if not os.path.exists(detailspath):
            raise FileNotFoundError(f"No se encontró el archivo {detailspath}")
        
        with open(detailspath, 'r') as file:
            details = json.load(file)

        APF = details.get('APF-1_api_prov_func_id')
        AEF1 = details.get('AEF-1_api_prov_func_id')
        AEF2 = details.get('AEF-2_api_prov_func_id')

        if not APF or not AEF1 or not AEF2:
            raise ValueError("No se encontraron todos los valores necesarios en 'Capif_provider_details.json'")

        # Actualización del archivo de configuración
        config['publish_req']['publisher_apf_id'] = APF
        config['publish_req']['publisher_aefs_ids'] = [AEF1, AEF2]
        
        with open(capif_sdk_config_path, 'w') as file:
            json.dump(config, file, indent=4)  # Guarda el JSON con formato

        print("Archivo de configuración actualizado correctamente.")
        # Volver a actualizar el constructor con los parametros nuevos de configuración
        capif_connector = CAPIFProviderConnector(config_file=capif_sdk_config_path)

        capif_connector.publish_services()

    except FileNotFoundError as e:
        print(f"Error: {e}")
    except json.JSONDecodeError as e:
        print(f"Error al leer el archivo JSON: {e}")
    except Exception as e:
        print(f"Error inesperado: {e}")
+2 −1
Original line number Diff line number Diff line
@@ -511,7 +511,7 @@ class CAPIFProviderConnector:
            csr_email_address = os.getenv('CSR_EMAIL_ADDRESS', config.get('csr_email_address', '')).strip()
            apfs = os.getenv('APFS', config.get('apfs', '')).strip()
            aefs = os.getenv('AEFS', config.get('aefs', '')).strip()
            api_description_path = os.getenv('API_DESCRIPTION_PATH', config.get('api_description_path', '')).strip()
            api_description_path = os.path.abspath(os.getenv('API_DESCRIPTION_PATH', config.get('api_description_path', '')).strip())

            if not capif_host:
                self.logger.warning("CAPIF_HOST is not provided; defaulting to an empty string")
@@ -803,6 +803,7 @@ class CAPIFProviderConnector:
        self.logger.info(f"Loading provider details from {provider_details_path}")
        
        provider_details=self.__load_provider_api_details()
        
        publish_url=provider_details["publish_url"]