From 10fa69a975b5b7593fadefdd5fe8cd0dbfdf015b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= <daniel.garciasanchez@telefonica.com> Date: Wed, 18 Sep 2024 17:31:25 +0200 Subject: [PATCH] Refactor without validation testing --- README.md | 45 ++++++++++++------ .../provider_api_description_sample.json | 0 .../Config_files => config}/config.json | 0 .../discover_filter.json | 0 .../Config_files => config}/publish.json | 0 .../Config_files => config}/register.json | 0 images/OpenCAPIF-icon.jpg | Bin 0 -> 7218 bytes nf-samples/README.md | 1 + scripts/README.md | 1 + .../deregister_and_login.py | 0 .../emulator_utils.py | 0 .../invoker_capif_connector.py | 0 .../invoker_capif_connector_offboarding.py | 0 .../invoker_service_discovery.py | 0 .../invoker_service_get_token.py | 0 .../provider_capif_connector.py | 0 .../provider_capif_connector_offboarding.py | 0 .../provider_get_all_published_api.py | 0 .../provider_get_published_api.py | 0 .../provider_publish_api.py | 0 .../provider_unpublish_api.py | 0 .../provider_update_api.py | 0 .../register_and_login.py | 0 {Safe-6g => sdk}/sdk.py | 0 24 files changed, 32 insertions(+), 15 deletions(-) rename {Functionalities/capif_exposer_sample_files => api-samples}/provider_api_description_sample.json (100%) rename {Functionalities/Config_files => config}/config.json (100%) rename {Functionalities/Config_files => config}/discover_filter.json (100%) rename {Functionalities/Config_files => config}/publish.json (100%) rename {Functionalities/Config_files => config}/register.json (100%) create mode 100644 images/OpenCAPIF-icon.jpg create mode 100644 nf-samples/README.md create mode 100644 scripts/README.md rename {Functionalities => scripts}/deregister_and_login.py (100%) rename {Functionalities => scripts}/emulator_utils.py (100%) rename {Functionalities => scripts}/invoker_capif_connector.py (100%) rename {Functionalities => scripts}/invoker_capif_connector_offboarding.py (100%) rename {Functionalities => scripts}/invoker_service_discovery.py (100%) rename {Functionalities => scripts}/invoker_service_get_token.py (100%) rename {Functionalities => scripts}/provider_capif_connector.py (100%) rename {Functionalities => scripts}/provider_capif_connector_offboarding.py (100%) rename {Functionalities => scripts}/provider_get_all_published_api.py (100%) rename {Functionalities => scripts}/provider_get_published_api.py (100%) rename {Functionalities => scripts}/provider_publish_api.py (100%) rename {Functionalities => scripts}/provider_unpublish_api.py (100%) rename {Functionalities => scripts}/provider_update_api.py (100%) rename {Functionalities => scripts}/register_and_login.py (100%) rename {Safe-6g => sdk}/sdk.py (100%) diff --git a/README.md b/README.md index 06af09a..4836fb0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ # OpenCAPIF SDK + + This repository develop a Python Software Development Kit(SDK) whis focuses on connecting to OpenCAPIF in a simple way, lowering integration complexity and allowing developers to focus on Network Functions (NF) or services development. OpentCAPIF SDK provides a set of libraries to enable either CAPIF provider and invoker roles, and other functions to simplify procedures calls towards OpenCAPIF. @@ -9,30 +11,37 @@ OpentCAPIF SDK provides a set of libraries to enable either CAPIF provider and i Current version of OpenCAPIF SDK is compatible with following publicly available releases: - OpenCAPIF Release 1.0 [LINK TO OPENCAPIF RELEASE] -# Features +# Table of Contents + + 1. [OpenCAPIF SDK usage](#OpenCAPIF-SDK-usage) + 2. [OpenCAPIF SDK Features](#OpenCAPIF-SDK-Features) + 3. [OpenCAPIF SDK Installation](#OpenCAPIF-SDK-Installation) + 4. [How to use OpenCAPIF SDK](#How-to-use-OpenCAPIF-SDK) + 5. [OpenCAPIF SDK known issues](#OpenCAPIF-SDK-known-issues) + +# OpenCAPIF SDK usage + +OpenCAPIF SDK implements this set of features to easily integrate an application with CAPIF NF either manually or integrating SDK library directly within app code. -OpenCAPIF SDK implements this set of features to integrate with CAPIF NF: +This repository includes 2 different modes to test OpenCAPIF SDK: +- **Manual usage**: use a set of python scripts to test step by step all implemented procedures. All of them are provided at scripts folder, +[IMAGE OF ARCH APP ----> CAPIF WITH SCRIPTS] + +- **Development usage**: import SDK in your code and start ... Within nf-sample folder, it is provided a sample application leveraging +[IMAGE OF ARCH APP ----> CAPIF WITH SDK INTEGRATION] + +# OpenCAPIF SDK Features - **Invoker CAPIF connector**: Simplifies the process of onboarding for Invoker users, - - **Provider CAPIF connector**: Simplifies the process of onboarding for Provider users,also has the capability to register several APF's and AEF's if its necesary, - - **Invoker Service Discovery**: Facilitates making a Discovery request to CAPIF, also stores the API services recieved and has an option to filter them, - - **Invoker Service Get token**: After the Discovery, this functionality simplifies the way of getting created their propperly security context for each of the services and adquiring the access token to use the final APIs, - - **Provider Publish API**: Simplifies the process of publishing an API. Also has the capability to chose which APF and AEF's will be used to publish the API, - - **Provider Unpublish API**: Simplifies the process of deleting an API, - - **Provider Update API**: Simplifies the process of updating an API. Also has the capability to chose which APF and AEF's will be used to update the API, - - **Provider Get API**: Simplifies the process of recieving the information of One service published previously, - - **Provider Get all APIs**: Simplifies the process of recieving the information of all available services published previously, - - **Invoker CAPIF connector offboarding**: Simplifies the process of offboarding for Invoker users, - - **Provider CAPIF connector offboarding**: Simplifies the process of offboarding for Provider users.  @@ -48,8 +57,7 @@ Apart from the SDK core, there are available different functionalities for devel  - -# OpenCAPIF SDK Installation +# OpenCAPIF SDK Installation (dev environment??) Follow next steps to perform OpenCAPIF SDK installation: @@ -103,7 +111,11 @@ pip install -r requirements.txt 2 - Then it is needed to fill out config files depending on the features required to be used from the SDK. -## Configuration of Config.json +## Prerequisites + +IMPORTANT: In order to leverage OpenCAPIF SDK it is required to have registered a user in the target CAPIF instance, so contact administrator to have required predefined credentials (username and password). + +## Configuration via Config.json "invoker_folder": String | The path (relative or absolute) of the folder you want to store your invoker information @@ -252,3 +264,6 @@ Each field is obligatory to complete except UUID, which is only obligatory in ca Although this field is not obligatory we recomend to store the UUID parameter recieved by the Register and login functionality in this field. +# OpenCAPIF SDK known issues + +[TO PUT HERE ALL KNOWN ISSUES OR BACKLOG] \ No newline at end of file diff --git a/Functionalities/capif_exposer_sample_files/provider_api_description_sample.json b/api-samples/provider_api_description_sample.json similarity index 100% rename from Functionalities/capif_exposer_sample_files/provider_api_description_sample.json rename to api-samples/provider_api_description_sample.json diff --git a/Functionalities/Config_files/config.json b/config/config.json similarity index 100% rename from Functionalities/Config_files/config.json rename to config/config.json diff --git a/Functionalities/Config_files/discover_filter.json b/config/discover_filter.json similarity index 100% rename from Functionalities/Config_files/discover_filter.json rename to config/discover_filter.json diff --git a/Functionalities/Config_files/publish.json b/config/publish.json similarity index 100% rename from Functionalities/Config_files/publish.json rename to config/publish.json diff --git a/Functionalities/Config_files/register.json b/config/register.json similarity index 100% rename from Functionalities/Config_files/register.json rename to config/register.json diff --git a/images/OpenCAPIF-icon.jpg b/images/OpenCAPIF-icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8ae5c10e186e12481f1e65f36b69ac722f057775 GIT binary patch literal 7218 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 A(f|Me literal 0 HcmV?d00001 diff --git a/nf-samples/README.md b/nf-samples/README.md new file mode 100644 index 0000000..d531917 --- /dev/null +++ b/nf-samples/README.md @@ -0,0 +1 @@ +AQUà EL CÓDIGO DE EJMEMPLO DE UNA NF/APP QUE HACE USO DEL SDK \ No newline at end of file diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..3f10aab --- /dev/null +++ b/scripts/README.md @@ -0,0 +1 @@ +AQUà TODOS LOS SCRIPTS DEL SDK \ No newline at end of file diff --git a/Functionalities/deregister_and_login.py b/scripts/deregister_and_login.py similarity index 100% rename from Functionalities/deregister_and_login.py rename to scripts/deregister_and_login.py diff --git a/Functionalities/emulator_utils.py b/scripts/emulator_utils.py similarity index 100% rename from Functionalities/emulator_utils.py rename to scripts/emulator_utils.py diff --git a/Functionalities/invoker_capif_connector.py b/scripts/invoker_capif_connector.py similarity index 100% rename from Functionalities/invoker_capif_connector.py rename to scripts/invoker_capif_connector.py diff --git a/Functionalities/invoker_capif_connector_offboarding.py b/scripts/invoker_capif_connector_offboarding.py similarity index 100% rename from Functionalities/invoker_capif_connector_offboarding.py rename to scripts/invoker_capif_connector_offboarding.py diff --git a/Functionalities/invoker_service_discovery.py b/scripts/invoker_service_discovery.py similarity index 100% rename from Functionalities/invoker_service_discovery.py rename to scripts/invoker_service_discovery.py diff --git a/Functionalities/invoker_service_get_token.py b/scripts/invoker_service_get_token.py similarity index 100% rename from Functionalities/invoker_service_get_token.py rename to scripts/invoker_service_get_token.py diff --git a/Functionalities/provider_capif_connector.py b/scripts/provider_capif_connector.py similarity index 100% rename from Functionalities/provider_capif_connector.py rename to scripts/provider_capif_connector.py diff --git a/Functionalities/provider_capif_connector_offboarding.py b/scripts/provider_capif_connector_offboarding.py similarity index 100% rename from Functionalities/provider_capif_connector_offboarding.py rename to scripts/provider_capif_connector_offboarding.py diff --git a/Functionalities/provider_get_all_published_api.py b/scripts/provider_get_all_published_api.py similarity index 100% rename from Functionalities/provider_get_all_published_api.py rename to scripts/provider_get_all_published_api.py diff --git a/Functionalities/provider_get_published_api.py b/scripts/provider_get_published_api.py similarity index 100% rename from Functionalities/provider_get_published_api.py rename to scripts/provider_get_published_api.py diff --git a/Functionalities/provider_publish_api.py b/scripts/provider_publish_api.py similarity index 100% rename from Functionalities/provider_publish_api.py rename to scripts/provider_publish_api.py diff --git a/Functionalities/provider_unpublish_api.py b/scripts/provider_unpublish_api.py similarity index 100% rename from Functionalities/provider_unpublish_api.py rename to scripts/provider_unpublish_api.py diff --git a/Functionalities/provider_update_api.py b/scripts/provider_update_api.py similarity index 100% rename from Functionalities/provider_update_api.py rename to scripts/provider_update_api.py diff --git a/Functionalities/register_and_login.py b/scripts/register_and_login.py similarity index 100% rename from Functionalities/register_and_login.py rename to scripts/register_and_login.py diff --git a/Safe-6g/sdk.py b/sdk/sdk.py similarity index 100% rename from Safe-6g/sdk.py rename to sdk/sdk.py -- GitLab